Cannot find symbol

2 respostas Resolvido
ViniciusWeiss

Estou fazendo um exercicio de um curso de Java e me deparei com a mensagem Cannot find symbol no terminal ao tentar compilar uma classe. Li que isso geralmente acontece quando o compilador não acha uma variável que eu estou tentando usar, porém no meu caso o compilador se refere ao nome de um parametro que estou tentando passar para um metodo. Qual é o problema do código? Segue o código e a mensagem de erro:

class Empresa{
	
	String nome;
	String cnpj;
	Funcionario[] funcionariosDaEmpresa = new Funcionario[10];
	
	void adicionar(Funcionario f){

		int i=0;

		while(i< this.funcionariosDaEmpresa.length){
			
			if(this.funcionariosDaEmpresa[i]==null){
				
				f = new Funcionario();
				this.funcionariosDaEmpresa[i] = f;
				break;

			} else{
				i++;
			}
	
		}

	this.funcionariosDaEmpresa[0].nome = "joão";

	System.out.println(this.funcionariosDaEmpresa[0].nome);
	}	
}

class TestaEmpresa{
	
	public static void main(String[]args){

		Empresa empresa = new Empresa(); //Cria o espaço para o array

		empresa.adicionar(f1);

	}
}

2 Respostas

victormenegusso
Solucao aceita

Oi @ViniciusWeiss, na sua classe ‘TestaEmpresa’ não existe a variável ‘f1’…
Se você quer adicionar um funcionário na empresa, você deve antes instanciar um funcionário.
Exemplo:

class TestaEmpresa{

    public static void main(String[]args){
	    Empresa empresa = new Empresa(); //Cria o espaço para o array
            Funcionario f1 = new Funcionario();
	    empresa.adicionar(f1);
    }
}
ViniciusWeiss

Achava que podia instanciar um funcionário dentro do método adicionar. Estou começando e a orientação a objetos ainda me confunde. Valeu!!

Criado 1 de outubro de 2016
Ultima resposta 1 de out. de 2016
Respostas 2
Participantes 2