Usando Enum[Resolvido]

Pessoal eu tenho vários usuários no meu sistema e esses usuários eles possuem privilégios diferentes eu to querendo usar o enum do java para que esses privilégios sejavam definidos
só dentro desse enum exemplo privilégio Total, Parcial e Restrito. Dentro do meu sistema eu tenho uma HIerarquia de CLasses onde eu tenho lá usuário, aluno, professor e esses caras têm privilégios diferentes dentro da super classe usuário eu defini lá um campo privilégio e do tipo enum que criei e dentro das minhas subclasses eu vou redefinir esse atributo privilegio de acordo com o nível de acesso de cada um o que eu gostaria de saber é se pra esse tipo enum que criei eu preciso definir métodos get e set e os contrutores.

MInha classe usuário

public abstract class Usuario {

	private String idusuario;
	private String nome;
	private String cpf;
	private String senha;
	private Endereco endereco;
	private Privilegio privilegio;

	public Usuario(String nome, String cpf, String senha, Endereco endereco, Privilegio privilegio) {

		this.nome = nome;
		this.cpf = cpf;
		this.senha = senha;
		this.endereco = endereco;
		this.privilegio=privilegio;
	}

	public Usuario() {

	}
	
	public Usuario(String nome, String cpf, String senha){
		
	}

	public String getIdusuario() {
		return idusuario;
	}

	public void setIdusuario(String idusuario) {
		this.idusuario = idusuario;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	
	public void definirPrivilegio(){
		
	}
	

}

E meu enum tá assim

[code]
public enum Privilegio {

Total, parcial, restrito,

}[/code]

agradeço a ajuda.

Não precisa, é só você colocar

public void definirPrivilegio(Privilegio p){ ... 

e quando for comparar, faça assim

if(user.getPrivilegio == Privilegio.Total){

mas eu quero alterar esse atributo privilegio dentro de cada subclasse minha. Tipo assim esse método definir não recebe nada
ele apenas pega o privilegio daquela entidade e seta como tal entende-se não é o usuário q vai definir é a própria a aplicação
quando identificar q aquele cara é uma aluno por exemplo. Desse jeito que vc me mostra o usuário é quem define.

Então acho que nem será necessário o método, visto que no construtor você já manda o privilégio como parametro :stuck_out_tongue:

Outra alternativa é deixar o método abstrato, e chama-lo no construtor, daí cada sub-classe define sua própria permissão, tipo assim:
Construtor de Usuário:

public Usuario(String nome, String cpf, String senha, Endereco endereco) { this.nome = nome; this.cpf = cpf; this.senha = senha; this.endereco = endereco; this.definirPrivilegio(); }
E o método definirPrivilegio na classe Usuario:

public abstract void definirPrivilegio();

E o método definirPrivilegio na classe Professor:

public void definirPrivilegio(){ this.privilegio = Privilegio.Total; }

E assim por diante ^^

É msm né cara basta eu colocar esse atributo como final e dizer e definir ele com aquele tipo enum q eu quero já resolver né??

Isso seria mais seguro ainda, mas colocando ele como um método abstrato na interface (classe abstrata) Usuario você tem a garantia que todas sub-classes de Usuario tem um privilegio definido xD

Só mais uma dúvida pessoal dessa forma como fica o meu construtor da subclasse tido os parâmetros.

Ex: Construtor do Professor:

public Professor(String nome, String cpf, String senha, Endereco endereco){ super(nome, cpf, senha, endereco); //Chama o construtor da superclasse //Mais algum código específico do professor aqui }

[edit]Se quiser adicionar mais parametros, inverter a ordem deles ou criar um construtor padrão (sem parametros) não tem problema, só que é recomendável que se chame algum construtor da superclasse ^^[/edit]