Problemas com array

Dem uma olhada nesse código:

class Empresa {
	String nome;
	String cnpj;
	Trabalhador[] trabalhadores;
	
	void mostra(){
		System.out.println("Empresa:"+this.nome);
		System.out.println("CNPJ:"+this.cnpj);
	}
	
	void adiciona(Trabalhador[] t){
		Trabalhador trabalhadores=t;
		
		for(int cont=0;cont<t.length;cont++){
			if(t[cont]==null){
				t[cont]=t;
			}
		}
		
		System.out.println("Nome:"+trabalhadores.trabalhador);
		System.out.println("RG:"+trabalhadores.rg);
		System.out.println("Salario:R$"+trabalhadores.salario);
	}
}

class Trabalhador{
	String trabalhador;
	String rg;
	double salario;
	
}

class EmpresaTeste{
	public static void main(String[] args){
		Empresa empresa=new Empresa();
		
		empresa.nome="Java S.A";
		empresa.cnpj="44.85.75.78";
		
		empresa.mostra();
		System.out.print("\n");
		
		empresa.trabalhadores=new Trabalhador[3];
		
		Trabalhador t1=new Trabalhador();
		t1.trabalhador="Pedro";
		t1.rg="785.455.845";
		t1.salario=350.00;
		
		Trabalhador t2=new Trabalhador();
		t2.trabalhador="Paulo";
		t2.rg="559.785.885";
		t2.salario=400.00;
		
		Trabalhador t3=new Trabalhador();
		t3.trabalhador="João";
		t3.rg="985.875.845";
		t3.salario=450.00;
		
		empresa.adiciona(t1);
		System.out.print("\n");
		empresa.adiciona(t2);
		System.out.print("\n");
		empresa.adiciona(t3);
	}
}

O meu código possui um método adiciona que deveria adicionar um trabalhador em uma posição de array que esteja livre procurando essa posição toda vez que for adicionar um novo trabalhador.Já quebrei a cabeça tentando fazer com que o código de certo podederiam de me dar uma ajuda.Obrigado.

Olá!

Amigo, vc confundiu as coisas! Vc trocou as variáveis, onde deveria ser array vc colocou o objeto simples e vice versa… Corrigi e agora está funcionando. Acho que se vc observar as alterações no código (só mudei sua funcão adiciona) ficam ais fácil vc ver do que se eu ficar explicando… :slight_smile:

ai vai!

class Empresa {
 	String nome;
 	String cnpj;
 	Trabalhador[] trabalhadores;
 	
 	void mostra(){
 		System.out.println("Empresa:"+this.nome);
 		System.out.println("CNPJ:"+this.cnpj);
 	}
 	
 	void adiciona(Trabalhador t){ 		
 		for(int cont=0;cont<trabalhadores.length;cont++){
 			if(trabalhadores[cont]==null){
 				trabalhadores[cont]=t;
 			}
 		}
 		
 		System.out.println("Nome:"+t.trabalhador);
 		System.out.println("RG:"+t.rg);
 		System.out.println("Salario:R$"+t.salario);
 	}
 }
 
 class Trabalhador{
 	String trabalhador;
 	String rg;
 	double salario;
 	
 }
 
 public class EmpresaTeste{
 	public static void main(String[] args){
 		Empresa empresa=new Empresa();
 		
 		empresa.nome="Java S.A";
 		empresa.cnpj="44.85.75.78";
 		
 		empresa.mostra();
 		System.out.print("\n");
 		
 		empresa.trabalhadores=new Trabalhador[3];
 		
 		Trabalhador t1=new Trabalhador();
 		t1.trabalhador="Pedro";
 		t1.rg="785.455.845";
 		t1.salario=350.00;
 		
 		Trabalhador t2=new Trabalhador();
 		t2.trabalhador="Paulo";
 		t2.rg="559.785.885";
 		t2.salario=400.00;
 		
 		Trabalhador t3=new Trabalhador();
 		t3.trabalhador="João";
 		t3.rg="985.875.845";
 		t3.salario=450.00;
 		
 		empresa.adiciona(t1);
 		System.out.print("\n");
 		empresa.adiciona(t2);
 		System.out.print("\n");
 		empresa.adiciona(t3);
 	}
 }

Abraço!