Enum, definindo valor da variavel de um enum de acordo com como foi instanciado

O valor passado no construtor de um Enum, que define o valor de suas variaveis, é dado logo na classe do próprio Enum? Existe alguma forma de passar esses valores enquanto ‘instancia’ o mesmo por outra classe?

Estou fazendo um exercício onde existem os Enums Servico, Porte e Plano. O que eu quero é fazer com que o Enum Plano tenha uma variável cujo valor é definido de acordo com o valor de determinadas variaveis, seguindo um calculo, dos enums servico e porte, enums esses que seriam passado por outra classe que ‘instanciaria’ o enum do tipo plano.

É possível passar algum valor ao instanciar um enum a partir de uma classe que não seja a do proprio enum? algo como int var= EnumClasse.ENUM(valor); ou só é possível passar o valor do parametro do construtor do enum dentro do próprio enum?

O construtor de um enum é privado, mesmo que você não declare private no construtor dele. Entretanto, é possível alterar o valor de atributos de um enum durante a execução:

public class AlterarAtributoDeEnum {

	public static enum MeuEnum {
		A("a"), B("b");
		String valor;
		MeuEnum(String v)  { this.valor = v; }
	}
	
	public static void main(String[] args) {
		System.out.println(MeuEnum.A.valor); //imprime a
		MeuEnum.A.valor = "x";
		System.out.println(MeuEnum.A.valor); //imprime x
	}

}

Talvez existam formas melhores de fazer o que você quer, sem usar enums. Também tenha em mente que os valores dos atributos dos enums não são serializados; e isto pode ser interessante pra você: