Adicionar instacia com Sccaner

tipo eu quero,adicionar instancia de uma classe chamada funcionario nela coloquei todos atributos de um funcionario ;para isso criei uma classe adfuncionario com vetor ;quero fazer as instacias criadas receber os atributos da classe funcionario ; ta assim o codigo

public static void main(String[] args) {
        Scanner user=new Scanner(System.in);
        
       //adicona funcionario
       Adfuncionario adc=new Adfuncionario();
       boolean adiciona=user.nextBoolean();
       if(adiciona=true){
           adc.ad();
          
       }
        
       Funcionarios f1=new Funcionarios();
       
       //entrada de dados
        //Dados funcionario
       System.out.println("Digite o nome do funcionario: ");
            String n=user.nextLine();
             f1.setNome(n);
             
       System.out.println("Digite a profissão: ");
            String p=user.nextLine();
            f1.setProfissão(p);
            
       System.out.println("Digite o numero do Cracha: ");
            int c=user.nextInt();
            f1.setCracha(c);
            
       System.out.println("Digite o valor do salario: ");
            int s=user.nextInt();
             f1.setSalario(s);
      System.out.println("------------------------------------");
       //mostra dados
       f1.mostra();


public class Adfuncionario{
    
    Funcionarios []f=new Funcionarios[5];
    
    
    
    public void ad(){
       for(int i=0;i<f.length;i++)
           this.f[i]=new Funcionarios();
          
       System.out.println("\n\n"+f[0]+"\n"+f[1]);
    }
}

Bom, não sei se sua classe AdcFuncionario serviria nesse caso, creio que somente a classe Funcionaro já basta e no método principal…

public static void main(String[] args) {
    Scanner user = new Scanner(System.in);

    System.out.println("Quantos funcionários deseja adicionar?");

    int qtd = user.nextInt();
    Funcionario[] funcionarios = new Funcionario[qtd];

    for (int i = 0; i < funcionarios.length; i++) {
        Funcionario f = new Funcionario(); //cria novo funcionario

        System.out.println("Digite o nome do funcionário " + (i + 1));
        f.setNome(user.nextLine());
        ...
        funcionarios[i] = f; //adiciona na lista
    }
}
1 curtida

Obrigado pela ajuda mano; funcionou

1 curtida

tem uma coisa ,no inicio eu dou o tamanho para o array e se depois com o programa em execução eu desejar adcionar mais um ou dois funcionarios ele não vai sobrescrever os outros? a minha ideia é ja dar um tamanho a um array e adicionar um funcionario a hora q eu bem entender meio q um pequeno banco de dados, criei uma condição para ver os as referencias criadas e seus dados se o usuario quiser, pretendo adicionar um switch para fazer algo como um menu

System.out.println(“Quantos funcionários deseja adicionar?”);
int adc=user.nextInt();

        Funcionarios[] f1=new Funcionarios[adc];
    
    for(int i=0;i<f1.length;i++){
        Funcionarios f=new Funcionarios();//adiciona novo funcionario
        //contador
            System.out.println("Digite os dados do Funcionario:"+(i+1));
        f.adicionaDados();//dados funcionario
        f1[i]=f;//adiciona funcionario a lista
    
       //mostra os dados de  cada funcionario
            System.out.println("Deseja ver os dados de algum funcionario?\n digite: true-sim / false=não ");
            boolean usuario=user.nextBoolean();
        if(usuario==true){

            System.out.println("Digite o n inscrição do funcionario: ");
            i=user.nextInt();
            f1[i].mostra();

        }else{
            exit();
        }
    }

Nesse caso é melhor você usar ArrayList ao invés do array tradicional…

Recomendo também ler sobre Estrutura de dados

Inclusive nessa apostila mostra como “redimensionar” o array dinamicamente, explicando os conceitos, vantagens e desvantagens…