staticclassPessoa{//classprivateStringPrimeiro_nome,Apelido,Morada,Cidade,Distrito,Email;privateintNumero,Codigo_postal,Telefone,Telemovel;//herançasPessoa(StringPrimeiro_nome,StringApelido,StringMorada,StringCidade,StringDistrito,StringEmail,intNumero,intCodigo_postal,intTelefone,intTelemovel){this.Primeiro_nome=Primeiro_nome;this.Apelido=Apelido;this.Morada=Morada;this.Cidade=Cidade;this.Distrito=Distrito;this.Email=Email;this.Numero=Numero;this.Codigo_postal=Codigo_postal;this.Telefone=Telefone;this.Telemovel=Telemovel;}//gets e setspublicStringgetApelido(){returnApelido;}publicvoidsetApelido(Stringa){Apelido=a;}publicStringgetPrimeiro_nome(){returnPrimeiro_nome;}publicvoidsetPrimeiro_nome(Stringpn){Primeiro_nome=pn;}publicStringgetMorada(){returnMorada;}publicvoidsetMorada(Stringm){Morada=m;}publicStringgetCidade(){returnCidade;}publicvoidsetCidade(Stringc){Cidade=c;}publicStringgetDistrito(){returnDistrito;}publicvoidsetDistrito(Stringd){Distrito=d;}publicStringgetEmail(){returnEmail;}publicvoidsetEmail(Stringe){Email=e;}publicintgetNumero(){returnNumero;}publicvoidsetNumero(intn){Numero=n;}publicintgetCodigo_postal(){returnCodigo_postal;}publicvoidsetCodigo_postal(intcp){Codigo_postal=cp;}publicintgetTelefone(){returnTelefone;}publicvoidsetTelefone(intt){Telefone=t;}publicintgetTelemovel(){returnTelemovel;}publicvoidsetTelemovel(inttm){Telemovel=tm;}publicStringtoString(){StringMensagem="Telemovel: "+Telemovel+"\n"+"Telefone: "+Telefone+"\n";returnMensagem;}Pessoa(){super();// Construtor}}Gostavadesaberporqueeuaintroduzirinformaçãonestasfuncoes:ArrayList<String>array=newArrayList<String>();Pessoapes1=newPessoa();publicvoidcriarNovoFunc(){pes1.setPrimeiro_nome(sc.nextLine());System.out.println("Foi adicionado um Funcionario ");System.out.println("===========================================");}publicvoidlistarFuncionarios(){System.out.println(pes1.getPrimeiro_nome());System.out.print("contents of al: "+al);System.out.print("\n");System.out.println("========================================");}
Na main:
new Main().criarNovoFunc();
new Main().listarFuncionarios();
Ele recebe o primeiro nome mas depois quando corre a função listar esta tudo a null:S
Innight,
Quado vc dá um new, vc na verdade cria uma nova instância…
Por exemplo:
Stringpalavra=newString();//pode ser feito, String é uma classe em Javapalavra="alô";//aí vc dá um novo newpalavra=newString();
O valor de palavra depois do primeiro new e da atribuição será --> alô
Após a segunda atribuição será --> null
Isto porque se criou outra instância da classe String na memória…
E a variável palavra, que antes apontava pra instância que guardava alô, agora aponta para ela!
Acho que é isso!
Vê se dá certo!
matheusconan
Poste seu código main tb que vou dar uma olhadinha…
Quando postar, marque o código todo e aperte o botão Code que fica nas opções do fórum de mensagem…
aluisiodsv
Coloque seus códigos em java dentro da tag code.
O padrão para nomes de variáveis é: primeira letra sempre minúscula; ao invés de usar um separador “_” captalize a primeira letra da próxima palavra. Exemplo: nomeDaVariavel, statusEntrega…
edit:
Outra coisa, não economize na hora de declarar suas propriedades.
O comentário //class não tem muito a ver com o que é. Na vdd são as propriedades.
O comentário //heranças, tbm não reflete o que é. Na vdd é o método construtor que já seta as propriedades.
Precisa melhorar seus conceitos de orientação a objetos.
Faça a apostila de orientação a objetos da caelum. Mt boa e gratuita.
T
Two_
Na verdade você precisa adicionar um Array do tipo “Pessoas” e adicionar ao Array a medida que for criado novos funcionários
Exemplo:
Pessoa pessoa = new Pessoa();
arrayFuncionario.add(pessoa);
Para listar os funcionários do array criado é algo do tipo:
você nao postou a class “Main” toda!
preciso da função “criarNovoFunc()” para melhor análise do código
I
innight
packagetrabalho_intercalar;importjava.io.IOException;importjava.util.Scanner;importjava.util.*;importjava.util.ArrayList;importjava.util.HashSet;importjava.util.List;importjava.util.Set;importtrabalho_intercalar.Biblioteca.Pessoa;publicclassMain{Scannersc=newScanner(System.in);// ArrayList<String> al = new ArrayList<String>();ArrayList<Pessoa>arrayp=newArrayList<Pessoa>();Pessoapes1=newPessoa();//public void criarNovoFunc(String Primero_nome,String Apelido, String Morada, String Cidade,String Distrito,String Email,int Numero,int Codigo_postal,int Telefone,int Telemovel)publicvoidcriarNovoFunc(){//pes1.setPrimeiro_nome(sc.nextLine());arrayp.add(pes1);pes1.setPrimeiro_nome("ola");//for(int i = 0; i < 5; i++){// array.add(sc.next());System.out.println("Foi adicionado um Funcionario ");System.out.println("===========================================");}publicvoidlistarFuncionarios(){// array.add("ola");System.out.print("\n");System.out.println("========================================");//for(int i = 0; i < 5; i++){// System.out.println(array);for(inta=0;a<arrayp.size();a++)System.out.println(arrayp.get(a));//}}/* public void existe(String nome){int i=0;for (String profs : arrayList){if (profs.contains(nome)==true){i++;}}if (i==0)System.out.println("Não Existe");if (i>0)System.out.println("Foram encontradas "+i+" ocorrencias do nome "+nome);System.out.println("=================================================");}public void apagarTudo(){arrayList.clear();System.out.println("Todos os registos foram apagados");}public void apagaFuncionario(String nome){arrayList.remove(nome);}*/publicvoidmostrarCaracteristicas(Pessoaobj){System.out.print("Esta Pessoa tem as seguintes características:\n"+"Primeiro Nome: "+obj.getPrimeiro_nome()+"\"\n"+"Apelido: "+obj.getApelido()+"\n"+"Morada: "+obj.getMorada()+"\n"+"Cidade : "+obj.getCidade()+"\n"+"Distrito: "+obj.getDistrito()+"\n"+"Email: "+obj.getEmail()+"\n"+"Numero: "+obj.getNumero()+"\n"+"Codigo_postal: "+obj.getCodigo_postal()+"\n"+"Telefone: "+obj.getTelefone()+"\n"+"Telemovel: "+obj.getTelemovel()+"\n");}publicstaticvoidmain(Stringarg[]){// MenuintmenuSelect=0;do{System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Funcionario : (2) - Cliente : (3) - Recursos : (0) - Sair");Scannerscan=newScanner(System.in);menuSelect=scan.nextInt();switch(menuSelect){case1:if(menuSelect==1){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Funcionarios : (2) - Alterar Funcionarios : (3) - Apresentar Funcionarios : (0) - Sair");menuSelect=scan.nextInt();if(menuSelect==1){System.out.println("teste");//new Main().criarNovoFunc(String Primero_nome,String Apelido, String Morada, String Cidade,String Distrito,String Email,int Numero,int Codigo_postal,int Telefone,int Telemovel);}newMain().criarNovoFunc();break;}menuSelect=0;case2:if(menuSelect==2){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Clientes : (2) - Alterar Clientes : (3) - Apresentar Clientes : (0) - Sair");menuSelect=scan.nextInt();break;}case3:if(menuSelect==3){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Recursos : (2) - Alterar Recursos : (3) - Apresentar Recursos : (0) - Sair");menuSelect=scan.nextInt();System.out.println("teste");newMain().listarFuncionarios();}}}while(menuSelect!=0);}
}
pronto e o resto eh a class pessoa que já está no topo no topic
T
Two_
aguarde estou analisando e fazendo as modificações
I
innight
ok obrigado.ja estou dando em maluco com isto
T
Two_
innight
vou postar aqui a solução....
Na verdade não seria solução alguma! o Código seu está totalmente fora dos padrões JAVA, isso parece código de linguagem C quando estamos no 2 período de faculdade
Te aconselho FORTEMENTE um estudo sobre a linguagem JAVA! procure a apostila do Caelum, ótima apostila para começar a entrar no mundo Java...
FIZ A GAMBIARRA DAS GAMBIARRAS PARA SEU CÓDIGO FUNCIONAR!
Lembrando que no GUJ procuramos tirar duvidas, não procurar soluções diretas para nossos problemas hehehehe
Segue a baixo a "solução" para seu problema...
qualquer duvida pode postar
packagetrabalho_intercalar;importjava.util.*;importjava.util.ArrayList;importtrabalho_intercalar.Biblioteca.Pessoa;publicclassMain{staticScannersc=newScanner(System.in);// ArrayList<String> al = new ArrayList<String>();staticArrayList<Pessoa>arrayp=newArrayList<Pessoa>();staticPessoapes1;//public void criarNovoFunc(String Primero_nome,String Apelido, String Morada, String Cidade,String Distrito,String Email,int Numero,int Codigo_postal,int Telefone,int Telemovel)staticpublicvoidcriarNovoFunc(){pes1=newPessoa();System.out.println("Entre com o primeiro Nome: ");Stringnome=sc.nextLine();pes1.setPrimeiro_nome(nome);arrayp.add(pes1);//for(int i = 0; i < 5; i++){// array.add(sc.next());System.out.println("Foi adicionado um Funcionario ");System.out.println("===========================================");}staticpublicvoidlistarFuncionarios(){// array.add("ola");System.out.print("\n");System.out.println("========================================");//for(int i = 0; i < 5; i++){// System.out.println(array);for(inta=0;a<arrayp.size();a++){System.out.println(arrayp.get(a).getPrimeiro_nome());}System.out.println("Total Funcionarios "+arrayp.size());//}}/* public void existe(String nome){int i=0;for (String profs : arrayList){if (profs.contains(nome)==true){i++;}}if (i==0)System.out.println("Não Existe");if (i>0)System.out.println("Foram encontradas "+i+" ocorrencias do nome "+nome);System.out.println("=================================================");}public void apagarTudo(){arrayList.clear();System.out.println("Todos os registos foram apagados");}public void apagaFuncionario(String nome){arrayList.remove(nome);}*/publicvoidmostrarCaracteristicas(Pessoaobj){System.out.print("Esta Pessoa tem as seguintes características:\n"+"Primeiro Nome: "+obj.getPrimeiro_nome()+"\"\n"+"Apelido: "+obj.getApelido()+"\n"+"Morada: "+obj.getMorada()+"\n"+"Cidade : "+obj.getCidade()+"\n"+"Distrito: "+obj.getDistrito()+"\n"+"Email: "+obj.getEmail()+"\n"+"Numero: "+obj.getNumero()+"\n"+"Codigo_postal: "+obj.getCodigo_postal()+"\n"+"Telefone: "+obj.getTelefone()+"\n"+"Telemovel: "+obj.getTelemovel()+"\n");}publicstaticvoidmain(Stringarg[]){// MenuintmenuSelect=0;do{System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Funcionario : (2) - Cliente : (3) - Recursos : (0) - Sair");Scannerscan=newScanner(System.in);menuSelect=scan.nextInt();switch(menuSelect){case1:if(menuSelect==1){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Funcionarios : (2) - Alterar Funcionarios : (3) - Apresentar Funcionarios : (0) - Sair");menuSelect=scan.nextInt();if(menuSelect==1){System.out.println("Cadastro de Funcionario");criarNovoFunc();break;}if(menuSelect==3){listarFuncionarios();break;}break;}menuSelect=0;case2:if(menuSelect==2){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Clientes : (2) - Alterar Clientes : (3) - Apresentar Clientes : (0) - Sair");menuSelect=scan.nextInt();break;}case3:if(menuSelect==3){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Recursos : (2) - Alterar Recursos : (3) - Apresentar Recursos : (0) - Sair");menuSelect=scan.nextInt();System.out.println("teste");newMain().listarFuncionarios();}}}while(menuSelect!=0);}}
I
innight
Obrigado a serio .deste uma grande ajuda que está um pouco perdido com a historia dos sets e gets e dos arraylist.
DavidUser
Two_:
Na verdade você precisa adicionar um Array do tipo “Pessoas” e adicionar ao Array a medida que for criado novos funcionários
Exemplo:
Pessoa pessoa = new Pessoa();
arrayFuncionario.add(pessoa);
Para listar os funcionários do array criado é algo do tipo:
No caso do uso de Framework List evite utilizar o for desta forma e use um Interator para correr a List
DavidUser
aconselho a apostila da caelum fj11 para facilitar o entendimento desses conhecimentos básicos e para consultas.
Também existem artigos aqui no próprio GUJ para facilitar o entendimento de forma rápida.
matheusconan
Cara,
Percebi que vc tem feito:
newMain().listarFuncionarios();
Vc sabe exatamente o que isto faz?
Talvez vc esteja querendo fazer assim:
Mainobjeto=newMain();
Depois pra chamar o listarFuncionarios:
objeto.listarFuncionarios();
Concorda?
I
innight
fiz com iterator no listar mas ele só me mostra a parte da class do telemovel
output:
"teste
Telemovel: 0
Telefone: 0"
porque?
MAIN:
packagetrabalho_intercalar;importjava.util.*;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.ListIterator;importtrabalho_intercalar.Biblioteca.Pessoa;importtrabalho_intercalar.Biblioteca.Funcionario;importtrabalho_intercalar.Biblioteca.Cliente;importtrabalho_intercalar.Biblioteca.Recursos;publicclassMain{staticArrayList<Funcionario>arrayf=newArrayList<Funcionario>();staticFuncionariofunc;staticArrayList<Cliente>arrayc=newArrayList<Cliente>();staticClienteclient;staticpublicvoidcriarNovoFunc(){func=newFuncionario();Scannersc=newScanner(System.in);System.out.println("Entre com o primeiro Nome: ");Stringprimeiro_nome=sc.nextLine();func.setPrimeiro_nome(primeiro_nome);System.out.println("Entre com o Apelido: ");StringApelido=sc.nextLine();func.setApelido(Apelido);System.out.println("Entre com o Departamento: ");StringDepartamento=sc.nextLine();func.setDepartamento(Departamento);System.out.println("Entre com o Numero de identificação: ");intn_empresa=sc.nextInt();func.setN_empresa(n_empresa);arrayf.add(func);System.out.println("Foi adicionado um Funcionario ");System.out.println("===========================================");}staticpublicvoidlistarFuncionarios(){//for(int a=0; a< arrayf.size();a++){// System.out.println(arrayf.get(a).getPrimeiro_nome());//System.out.println("Total Funcionarios "+ arrayf.size())Iterator<Funcionario>itr=arrayf.iterator();while(itr.hasNext()){Funcionarioelement=itr.next();System.out.print(element+" ");}/* public void existe(String nome){int i=0;for (String profs : arrayList){if (profs.contains(nome)==true){i++;}}if (i==0)System.out.println("Não Existe");if (i>0)System.out.println("Foram encontradas "+i+" ocorrencias do nome "+nome);System.out.println("=================================================");}public void apagarTudo(){arrayList.clear();System.out.println("Todos os registos foram apagados");}public void apagaFuncionario(String nome){arrayList.remove(nome);}*/}staticpublicvoidmostrarCaracteristicas(Pessoaobj){System.out.print("Esta Pessoa tem as seguintes características:\n"+"Primeiro Nome: "+obj.getPrimeiro_nome()+"\"\n"+"Apelido: "+obj.getApelido()+"\n"+"Morada: "+obj.getMorada()+"\n"+"Cidade : "+obj.getCidade()+"\n"+"Distrito: "+obj.getDistrito()+"\n"+"Email: "+obj.getEmail()+"\n"+"Numero: "+obj.getNumero()+"\n"+"Codigo_postal: "+obj.getCodigo_postal()+"\n"+"Telefone: "+obj.getTelefone()+"\n"+"Telemovel: "+obj.getTelemovel()+"\n");}publicstaticvoidmain(Stringarg[]){// MenuintmenuSelect=0;do{System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Funcionario : (2) - Cliente : (3) - Recursos : (0) - Sair");Scannerscan=newScanner(System.in);menuSelect=scan.nextInt();switch(menuSelect){case1:if(menuSelect==1){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Funcionarios : (2) - Alterar Funcionarios : (3) - Apresentar Funcionarios : (0) - Sair");menuSelect=scan.nextInt();if(menuSelect==1){System.out.println("teste");//new Main().criarNovoFunc(String Primero_nome,String Apelido, String Morada, String Cidade,String Distrito,String Email,int Numero,int Codigo_postal,int Telefone,int Telemovel);criarNovoFunc();}break;}menuSelect=0;case2:if(menuSelect==2){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Clientes : (2) - Alterar Clientes : (3) - Apresentar Clientes : (0) - Sair");menuSelect=scan.nextInt();break;}case3:if(menuSelect==3){System.out.println("Selecione a opção sff");System.out.println("");System.out.println("(1) - Criar Recursos : (2) - Alterar Recursos : (3) - Apresentar Recursos : (0) - Sair");menuSelect=scan.nextInt();System.out.println("teste");listarFuncionarios();}}}while(menuSelect!=0);}}
DavidUser
O uso do Interator está correto.
Ele só imprime o que está definido da sua reescrita do método toString.
DavidUser
Caso Funcionario seja classe filha de Pessoa utilize o método mostrarCaracteristicas para imprimir todos os dados invés de imprimir o elemento funcionário, que chama o toString da classe automáticamente.