Identificando objeto

4 respostas
M

Bom dia pessoal, tentando fazer esse exercicio da apostila caelum f11, o ecercicio pede para colocar uma identificador no código:

(opcional) Adicione um atributo na classe Funcionario de tipo int que se chama identificador. Esse identificador
deve ter um valor único para cada instância do tipo Funcionario. O primeiro Funcionario instanciado
tem identificador 1, o segundo 2, e assim por diante. Você deve utilizar os recursos aprendidos aqui para
resolver esse problema.
Crie um getter para o identificador. Devemos ter um setter?

Eu tentei usar o mesmo processo que está mostrando na apostila usando static, mas do meu jeito nao está dando certo, talvez seja a posição da variável no contexto do código, vou mostrar o código pra vcs

class Funcionario {
	private String nome;
	private String depto;
	private double salario;
	private Data dataEntrada;
	private String rg;
	boolean estaNaEmpresa = true;

	private static int identificador;

	Funcionario() {
		Funcionario.identificador = Funcionario.identificador +1;
	}

	public int getIdentificador() {
		return Funcionario.identificador;
	}


	Funcionario(String nome) {
		this.nome = nome;
	}

	public String getNome() {
		return this.nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getDepto() {
		return this.depto;
	}
	public void setDepto( String depto) {
		this.depto = depto;
	}
	public double getSalario() {
		return this.salario;
	}
	public void setSalario(double salario) {
		this.salario = salario;
	}
	public Data getDataEntrada() {
		return this.dataEntrada;
	}
	public void setDataEntrada( Data dataEntrada) {
		this.dataEntrada = dataEntrada;
	}
	public String getRG() {
		return this.rg;
	}
	public void setRG(String rg) {
		this.rg = rg;
	}	
	void bonifica(double aumento) {
		this.salario += aumento;
	}
	
	void demite () {
		this.estaNaEmpresa=false;
		System.out.println("O Funcionario nao trabalha mais aqui");
	}
	
	void mostra() {
		System.out.println("Nome "+ this.nome);
		System.out.println("Departamento " + this.depto);
		System.out.println("Salario atual" + this.salario);
		System.out.println("RG " + this.rg);
		System.out.println("Esta na empresa: " + this.estaNaEmpresa);
		System.out.println("Dia: " + this.dataEntrada.dia);
		System.out.println("Mes: " + this.dataEntrada.mes);
		System.out.println("Ano: " + this.dataEntrada.ano);
		
	}
}
class TestaFuncionario {
	public static void main(String[] args) {
		int total = Funcionario.getIdentificador();
		Funcionario f1 = new Funcionario(Tiririca);
	
		f1.setSalario(100);
		f1.setDepto("Administrativo");
		f1.bonifica(50);
		f1.setRG("46.625.423-4 SSP");
		
		Data dt = new Data();
		f1.setDataEntrada(dt);
		dt.dia = 1;
		dt.mes = 2;
		dt.ano = 10;

		f1.estaNaEmpresa = true;
		f1.mostra();
		
		System.println("Identificador :"+ getIdentificador()); 
		
		Funcionario f2 = new Funcionario(Jepeto);

		f2.setSalario(100);
		
		System.println(" Identificador :"+ getIdentificador()); 
 				
		System.out.println("salario atual "+f1.getSalario());
		if (f1.estaNaEmpresa==true) {
		System.out.println("Esta na empresa desde " + dt.dia +"/" + dt.mes + "/" + dt.ano);
		} else {
		System.out.println("Funcionario demitido");
		}

		if (f1 == f2) {
			System.out.println("Iguais");
		} else {
			System.out.println("Diferentes");
			}
		
	}
}

Quando é criado o funcionario eu coloquei no código para que mostrasse o identificador,eu apenas quero que quando fosse criado o objeto que em seguida mostrasse o numero identificador dele, mas alguma coisa está errado, alguem pode me ajudar?

4 Respostas

T

Onde exatamente está ocorrendo o problema? Coloque aqui a mensagem de erro, se houver.

M

Ele não está compilando, são 7 erros cannot find symbol

T

Cara, não tem como colar os erros aqui? Fica muito mais fácil para descobrir o que acontece.

M

Não é mais fácil copiar o código e tentar compilá-lo para ver o erro? Porque no prompt de comando eu nao consigo copiar.

Criado 29 de novembro de 2010
Ultima resposta 30 de nov. de 2010
Respostas 4
Participantes 2