Erro Cannot find variable e1

Boa noite Pessoa!

sou novo aqui no forum, e mais novo ainda em java, estou tentando fazer um programinha pra aquecer, so q não estou conseguindo fazer realmente o q eu quero. dps de procurar algumas horas e testar várias combinações tentando descobrir o q está errado resolvi postar os códigos aqui no forum, espero q alguem me indique um caminho.

o erro q da é na classe Principal cannot find variable e1

[code]public class Empregado {
private String nome;
private int numeroHoras;
private double salarioH;
private double salBruto;
// Construtor inicializa a string nome com vazio, numerohoras com 0 e salarioh com 0.
public Empregado (){
nome="";
numeroHoras= 0;
salarioH=0;
}
/* metodo setEmpregado( como as variaveis estão como private, temos que criar
metodo set para poder atribuir valores à variaveis*/
public void setEmpregado(String nomei, int numHoras, double salHora){
nome= nomei;
numeroHoras= numHoras;
salarioH=salHora;
}
//metodo getEmpregado para as variaveis poder ser exibida na classe principal.
public String getEmpregado(){
return nome;
}
public double getSalBruto(){
return salBruto;
}
/* metodo calcula hora extra com adicional de 50% e devolve o salário bruto do empregado
aqui o metodo não recebe nada. por que? simples pois ele usa as mesmas variáveis que
o usuário atribui valores a ela dentro da main. quando eu chamo e1.calcSalBruto, ele
vai me retornar o calculo do lario bruto para o objeto e1.*/
public double calcSalBruto (){

	if(numeroHoras-40<=0)
		return numeroHoras*salarioH;
		
		return salBruto = ((numeroHoras-40)*salarioH)*1.5+(40*salarioH);

}

}
[/code]
CLASS PRINCIPAL.

import java.util.Scanner;
public class Principal {
    
    public static void main(String[] args) {
    	for(int i=0; i<3; i++){
    	
      	Empregado[] e1 = new Empregado[3];
      					
    	}  
    	Scanner in = new Scanner(System.in);
    	
    	for (int i=0;i<3;i++){
    		
    		e1[i]= new Empregado();
    		System.out.println("Digite o Nome do empregado, seguido do numero de horas trabalhadas\ne quanto ele ganha por hora:");
    		String n = in.nextLine();
    		int ht = in.nextInt();
    		double vh = in.nextDouble();


    		e1[i].setEmpregado(n,ht,vh);
    		e1[i].calcSalBruto();
    		System.out.print("O nome do Empregado é: "+e1[i].getEmpregado()+"\nO Salario bruto é:"+e1[i].getSalBruto());
 	
    	}
    }
}

Toda crítica e conselhos são bem vindos!!!

Obrigado antecipadamente.

 for(int i=0; i<3; i++){  
           
         Empregado[] e1 = new Empregado[3];  
                           
         }

Não olhei o resto do código, mas esse trecho no início da classe Principal, método main(), está estranho.
Se sua idéia é criar um array, deveria tentar

Empregado[] e1 = new Empregado[3];

Mas tudo isso fora de um for
Já que esse for está substituindo os valor de e1 e quando o for estiver encerrado e1 deixará de existir já que foi declarado internamente a ele.

No for seguinte, quando vc tentar a atribuição abaixo

e1[i]= new Empregado();  

e1 não estará mais na memória e daí a msg… cannot find symbol.
Não sei por onde está estudando, mas acho que deveria fixar melhor os conceitos anteriores.

Cara tb não sei muita coisa, mas acho que se você retirar a eliminar o 1º for e deixar só Empregado[] e1 = new Empregado[3]; , vai dar certo, acho que do jeito que esta sendo feito, o array Empregado só existe dentro do for.

Obrigado a vcs, mas só pra esclarecer o primeiro for não era pra está ali de tanto tentar tirar o erro, esqueci ele ali mas a minha idéia era a seguinte:

[code]import java.util.Scanner;
public class Principal {

public static void main(String[] args) {
	
	
  	Empregado[] e1 = new Empregado[3];
        
  					
 
	Scanner in = new Scanner(System.in);
	
	for (int i=0;i<3;i++){
		
		e1[i] = new Empregado();
		
		System.out.println("Digite o Nome do empregado, seguido do numero de horas trabalhadas\ne quanto ele ganha por hora:");
		String n = in.nextLine();
		int ht = in.nextInt();
		double vh = in.nextDouble();
		  
		

		e1[i].setEmpregado(n,ht,vh);
		e1[i].calcSalBruto();
		    	
	
	}
	System.out.print("O nome do Empregado é: "+e1[i].getEmpregado()+"\nO Salario bruto é:"+e1[i].getSalBruto());

		
	
}

}[/code]

Dúvida principal é se eu posso usar esse tipo de sintaxe?
System.out.print(“O nome do Empregado é: “+e1[i].getEmpregado()+”\nO Salario bruto é:”+e1[i].getSalBruto());

thx

Pode sim.

Mas está utilizando o nome getEmpregado() para algo que na verdade retorna o nome do empregado.
Deveria alterar para getNome() o nome desse método.
Quando utiliza o nome getEmpregado da a impressão que vc está devolvendo um Empregado, uma instância da classe.

Vlw pela ajuda!!!

Muito obrigado!