Arrays de objetos

Oi pessoal sou novo em Java…
Estou tentando montar um exercício que na classe teste teria que criar um array de objeto e colocar os objetos novos ali, basicamente
o primeiro if definira o tipo de objeto e depois vira um FOR para pedir os dados e depois instanciar o objeto, mas no netbeans dentro do FOR
diz que não consegue identificar a relação com o array anterior com os identificadores ga ta ea aa.
Sera que alguém teria alguma dica de como posso fazer isso?

import java.util.Scanner;

public class Teste {

public static void main(String[] args) {

    //Solicitacao dos dados:
    Scanner input = new Scanner(System.in);
    
    
    System.out.println("Cargo: ");
    String cargo = input.nextLine();
    
    
    System.out.println("Insira o numero de" + cargo + "que deseja cadastrar");
    int aF = input.nextInt();
    
    if (cargo.equalsIgnoreCase("Gerente")) {
        Gerente[] [b]ga[/b] = new Gerente[aF];            
    } else if (cargo.equalsIgnoreCase("Tecnico")) {
        Tecnico[] [b]ta[/b] = new Tecnico[aF];            
    } else if (cargo.equalsIgnoreCase("Analista")) {
        Tecnico[] [b]aa[/b] = new Tecnico[aF];
    } else {
        Estagiario[] [b]ea[/b] = new Estagiario[aF];            
    }
    
    
    
    for (int i = 1; i <= aF; i++) {
        
        System.out.println("Insira o primeiro nome: ");
        String pN = input.nextLine();
        System.out.println("Insira o ultimo nome: ");
        String uN = input.nextLine();
        System.out.println("Insira as iniciais do nome: ");
        String ini = input.nextLine();
        System.out.println("Insira o nome completo: ");
        String n = input.nextLine();
        System.out.println("Insira o Data de nacimento (dia): ");
        int d = input.nextInt();
        System.out.println("Insira o Data de nacimento (mês): ");
        int m = input.nextInt();
        System.out.println("Insira o Data de nacimento (ano): ");
        int a = input.nextInt();
        System.out.println("Insira o Data de entrada (dia): ");
        int de = input.nextInt();
        System.out.println("Insira o Data de entrada (mês): ");
        int me = input.nextInt();
        System.out.println("Insira o Data de entrada (ano): ");
        int ae = input.nextInt();
        System.out.println("Insira a carga horaria de serviço diaria: ");
        double cH = input.nextDouble();
        System.out.println("Insira o valor hora: R$ ");
        double vH = input.nextDouble();
        
        
        
        
        
        if (cargo.equalsIgnoreCase("Gerente")) {
            //pN, uN, n, nd, nm, na, ad, am, aa, md, mm, ma, cH, vH
           [b] ga[/b][i] = new Gerente(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH);
            
        } else if (cargo.equalsIgnoreCase("Tecnico")) {
            //pN, uN, n, nd, nm, na, ad, am, aa, md, mm, ma, cH, vH
          [b]  ta[/b][i] = new Tecnico(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH);
            
        } else if (cargo.equalsIgnoreCase("Analista")) {
            //pN, uN, n, nd, nm, na, ad, am, aa, md, mm, ma, cH, vH
           [b] aa[/b][i] = new Analista(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH);
            
        } else {
            //pN, uN, n, nd, nm, na, ad, am, aa, md, mm, ma, cH, vH
           [b] ea[/b][i] = new Estagiario(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH);
        }
        
    }
    
    
    
}

}

Quando for postar código, utilize a tag [c0de] [/c0de] para postar códigos:
Obs: Ao postar substitu-a o “0” pela letra “o”.


import java.util.Scanner; 

public class Teste { 

public static void main(String[] args) { 

//Solicitacao dos dados: 
Scanner input = new Scanner(System.in); 


System.out.println("Cargo: "); 
String cargo = input.nextLine(); 


System.out.println("Insira o numero de" + cargo + "que deseja cadastrar"); 
int aF = input.nextInt(); 

if (cargo.equalsIgnoreCase("Gerente")) { 
Gerente[] ga = new Gerente[aF]; 
} else if (cargo.equalsIgnoreCase("Tecnico")) { 
Tecnico[] ta = new Tecnico[aF]; 
} else if (cargo.equalsIgnoreCase("Analista")) { 
Tecnico[] aa = new Tecnico[aF]; 
} else { 
Estagiario[] ea = new Estagiario[aF]; 
} 



for (int i = 1; i <= aF; i++) { 

System.out.println("Insira o primeiro nome: "); 
String pN = input.nextLine(); 
System.out.println("Insira o ultimo nome: "); 
String uN = input.nextLine(); 
System.out.println("Insira as iniciais do nome: "); 
String ini = input.nextLine(); 
System.out.println("Insira o nome completo: "); 
String n = input.nextLine(); 
System.out.println("Insira o Data de nacimento (dia): "); 
int d = input.nextInt(); 
System.out.println("Insira o Data de nacimento (mês): "); 
int m = input.nextInt(); 
System.out.println("Insira o Data de nacimento (ano): "); 
int a = input.nextInt(); 
System.out.println("Insira o Data de entrada (dia): "); 
int de = input.nextInt(); 
System.out.println("Insira o Data de entrada (mês): "); 
int me = input.nextInt(); 
System.out.println("Insira o Data de entrada (ano): "); 
int ae = input.nextInt(); 
System.out.println("Insira a carga horaria de serviço diaria: "); 
double cH = input.nextDouble(); 
System.out.println("Insira o valor hora: R$ "); 
double vH = input.nextDouble(); 





if (cargo.equalsIgnoreCase("Gerente")) { 
//pN, uN, n, nd, nm, na, ad, am, aa, md, mm, ma, cH, vH 
ga[i] = new Gerente(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH); 

} else if (cargo.equalsIgnoreCase("Tecnico")) { 
//pN, uN, n, nd, nm, na, ad, am, aa, md, mm, ma, cH, vH 
ta[i] = new Tecnico(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH); 

} else if (cargo.equalsIgnoreCase("Analista")) { 
//pN, uN, n, nd, nm, na, ad, am, aa, md, mm, ma, cH, vH 
aa[i] = new Analista(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH); 

} else { 
//pN, uN, n, nd, nm, na, ad, am, aa, md, mm, ma, cH, vH 
ea[i] = new Estagiario(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH); 
} 

} 



} 
} 

Blz…vlew!

Cara, o problema é que você está “criando” o seu array dentro do if:

if (cargo.equalsIgnoreCase("Gerente")) {   
Gerente[] ga = new Gerente[aF];   
} else if (cargo.equalsIgnoreCase("Tecnico")) {   
Tecnico[] ta = new Tecnico[aF];   
} else if (cargo.equalsIgnoreCase("Analista")) {   
Tecnico[] aa = new Tecnico[aF];   
} else {   
Estagiario[] ea = new Estagiario[aF];   
}   

Crie os arrys fora e depois inicialize ele dentro do if:

Gerente[] ga;
Tecnico[] ta;
Tecnico[] aa;
Estagiario[] ea;
if (cargo.equalsIgnoreCase("Gerente")) {   
ga = new Gerente[aF];   
} else if (cargo.equalsIgnoreCase("Tecnico")) {   
ta = new Tecnico[aF];   
} else if (cargo.equalsIgnoreCase("Analista")) {   
aa = new Tecnico[aF];   
} else {   
ea = new Estagiario[aF];   
}   

Abraço…

Opa, valew Danilo, realmente agora ele
identifico as variaveis, porem fiquei com uma duvida referente a isso, eu nao posso criar o array dentro de um if, mas eu posso realmente inicializa-lo dentro do if como voce cito a cima?
Pois agora dentro do FOR ele pede que eu inicialize novamente as variaveis ga ta ea aa…
Alguma ideia?

[quote=Wendt]Opa, valew Danilo, realmente agora ele
identifico as variaveis, porem fiquei com uma duvida referente a isso, eu nao posso criar o array dentro de um if, mas eu posso realmente inicializa-lo dentro do if como voce cito a cima?
Pois agora dentro do FOR ele pede que eu inicialize novamente as variaveis ga ta ea aa…
Alguma ideia?[/quote]

É porque você está usando o new,…

Dentro do seu for, ao invés de fazer assim ga[i] = new Gerente(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH);

Você deveria fazer algo como ga[].add(pN, uN, n, d, m, a, de, me, ae, d, m, a, cH, vH);

Não lembro bem como usa o Vector, pq não o uso mais faz tempo…

Espero ter sido útil…

Vlew Danilo, vou dar uma estudada nisso… obrigado mesmo pela dica…