Ajuda Gets e sets

19 respostas
I

Boa tarde.Eu tenho uma classe pessoa

static class Pessoa{


//class
      private String  Primeiro_nome,Apelido , Morada, Cidade, Distrito,Email;
      private int Numero,Codigo_postal,Telefone,Telemovel;


         //heranças
        Pessoa(String Primeiro_nome,String Apelido, String Morada, String Cidade,String Distrito,String Email,int Numero,int Codigo_postal,int Telefone,int Telemovel){
            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 sets
        public String getApelido(){return Apelido;}
        public void setApelido(String a){Apelido=a;}

        public String getPrimeiro_nome(){return Primeiro_nome;}
        public void setPrimeiro_nome(String pn){Primeiro_nome=pn;}

        public String getMorada(){return Morada;}
        public void setMorada(String m){Morada=m;}

        public String getCidade(){return Cidade;}
        public void setCidade(String c){Cidade=c;}

        public String getDistrito(){return Distrito;}
        public void setDistrito(String d){Distrito=d;}

        public String getEmail(){return Email;}
        public void setEmail(String e){Email=e;}

        public int getNumero(){return Numero;}
        public void setNumero(int n){Numero=n;}

        public int getCodigo_postal(){return Codigo_postal;}
        public void setCodigo_postal(int cp){Codigo_postal=cp;}

        public int getTelefone(){return Telefone;}
        public void setTelefone(int t){Telefone=t;}


        public int getTelemovel(){return Telemovel;}
        public void setTelemovel(int tm){Telemovel=tm;}

       

        
        public String toString()
        {
            String Mensagem =
                              "Telemovel: " + Telemovel + "\n" +
                               "Telefone: " + Telefone + "\n";

            return Mensagem;

        }

       Pessoa()

    {
        super(); // Construtor
}

}

Gostava de saber porque eu a introduzir informação nestas funcoes:


ArrayList<String> array = new ArrayList<String>();
Pessoa pes1 = new Pessoa();


    public void criarNovoFunc()
{
        pes1.setPrimeiro_nome(sc.nextLine());


        
       
System.out.println ("Foi adicionado um Funcionario ");
System.out.println ("===========================================");
}

    public void listarFuncionarios()
{
     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

porque?

19 Respostas

matheusconan

Innight,
Quado vc dá um new, vc na verdade cria uma nova instância…
Por exemplo:

String palavra = new String();  //pode ser feito, String é uma classe em Java
palavra = "alô";

//aí vc dá um novo new
palavra = new String();

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

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:

for(int a=0; a< arrayFuncionario.size();a++) System.out.println(arrayFuncionario.get(a));

I

tenho em conta as minhas funções

public void criarNovoFunc()
public void listarFuncionarios()

como as posso chamar na main?

T

posta o código da Class Main!

I
public static void main(String arg[]) {
             
            // Menu
            int menuSelect = 0;
            do {
            System.out.println("Selecione a opção sff");
            System.out.println("");
            System.out.println("(1) - Funcionario      :     (2) - Cliente     :     (3) - Recursos     :     (0) - Sair");
            Scanner scan = new Scanner(System.in);
            menuSelect = scan.nextInt();
       
            switch (menuSelect)
            {
                case 1:
                    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);
                            }new Main().criarNovoFunc();
                       
                        break;

                    }menuSelect = 0;
                     
                case 2:
                    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;
                    }
                case 3:
                    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");
                      new Main().listarFuncionarios();
                    }
                    }
            }
            while (menuSelect !=0);
    }

   
 

}
T

você nao postou a class “Main” toda!
preciso da função “criarNovoFunc()” para melhor análise do código

I
package trabalho_intercalar;

import java.io.IOException;
import java.util.Scanner;
import java.util.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import trabalho_intercalar.Biblioteca.Pessoa;

public class Main{
Scanner sc = new Scanner(System.in);

// ArrayList<String> al = new ArrayList<String>();

ArrayList<Pessoa> arrayp = new ArrayList<Pessoa>();

Pessoa pes1 = new Pessoa();

    //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)
public void criarNovoFunc()
{
       
        //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 ("===========================================");
}

    public void listarFuncionarios()
{
      //  array.add("ola");
    
    System.out.print("\n");
System.out.println("========================================");

//for(int i = 0; i < 5; i++){
       // System.out.println(array);

for(int a=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);
}
*/
    

  public  void mostrarCaracteristicas(Pessoa obj) {
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");
    }

        public static void main(String arg[]) {
             
            // Menu
            int menuSelect = 0;
            do {
            System.out.println("Selecione a opção sff");
            System.out.println("");
            System.out.println("(1) - Funcionario      :     (2) - Cliente     :     (3) - Recursos     :     (0) - Sair");
            Scanner scan = new Scanner(System.in);
            menuSelect = scan.nextInt();
       
            switch (menuSelect)
            {
                case 1:
                    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);
                            }new Main().criarNovoFunc();
                       
                        break;

                    }menuSelect = 0;
                     
                case 2:
                    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;
                    }
                case 3:
                    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");
                      new Main().listarFuncionarios();
                    }
                    }
            }
            while (menuSelect !=0);
    }

}

pronto e o resto eh a class pessoa que já está no topo no topic

T

aguarde estou analisando e fazendo as modificações

I

ok obrigado.ja estou dando em maluco com isto

T

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
package trabalho_intercalar;

import java.util.*;
import java.util.ArrayList;
import trabalho_intercalar.Biblioteca.Pessoa;

public class Main{
static Scanner sc = new Scanner(System.in);

// ArrayList<String> al = new ArrayList<String>();

static ArrayList<Pessoa> arrayp = new ArrayList<Pessoa>();

static Pessoa pes1;

    //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)
static public void criarNovoFunc()
{

     pes1 = new Pessoa();
     System.out.println("Entre com o primeiro Nome: ");
     String nome = 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 ("===========================================");
}

  static  public void listarFuncionarios()
{
      //  array.add("ola");

    System.out.print("\n");
System.out.println("========================================");
//for(int i = 0; i < 5; i++){
       // System.out.println(array);

for(int a=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);
}
*/


  public  void mostrarCaracteristicas(Pessoa obj) {
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");
    }

        public static void main(String arg[]) {

            // Menu
            int menuSelect = 0;
            do {
            System.out.println("Selecione a opção sff");
            System.out.println("");
            System.out.println("(1) - Funcionario      :     (2) - Cliente     :     (3) - Recursos     :     (0) - Sair");
            Scanner scan = new Scanner(System.in);
            menuSelect = scan.nextInt();

            switch (menuSelect)
            {
                case 1:
                    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;

                case 2:
                    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;
                    }
                case 3:
                    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");
                      new Main().listarFuncionarios();
                    }
                    }
            }
            while (menuSelect !=0);
    }
}
I

Obrigado a serio :slight_smile: .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:

for(int a=0; a< arrayFuncionario.size();a++) System.out.println(arrayFuncionario.get(a));

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:

new Main().listarFuncionarios();

Vc sabe exatamente o que isto faz?

Talvez vc esteja querendo fazer assim:

Main objeto = new Main();

Depois pra chamar o listarFuncionarios:

objeto.listarFuncionarios();

Concorda?

I

fiz com iterator no listar mas ele só me mostra a parte da class do telemovel
output:
"teste
Telemovel: 0
Telefone: 0"

porque?

MAIN:

package trabalho_intercalar;


import java.util.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
import trabalho_intercalar.Biblioteca.Pessoa;
import trabalho_intercalar.Biblioteca.Funcionario;
import trabalho_intercalar.Biblioteca.Cliente;
import trabalho_intercalar.Biblioteca.Recursos;

public class Main{



static ArrayList<Funcionario> arrayf = new ArrayList<Funcionario>();

static Funcionario func;
static ArrayList<Cliente> arrayc = new ArrayList<Cliente>();

static Cliente client;

static public void criarNovoFunc()
{
   

     func = new Funcionario();
     
     Scanner sc = new Scanner(System.in);
     System.out.println("Entre com o primeiro Nome: ");
     String primeiro_nome = sc.nextLine();
     func.setPrimeiro_nome(primeiro_nome);
     System.out.println("Entre com o Apelido: ");
     String Apelido = sc.nextLine();
     func.setApelido(Apelido);
  
     
     System.out.println("Entre com o Departamento: ");
     String Departamento = sc.nextLine();
     func.setDepartamento(Departamento);
        System.out.println("Entre com o Numero de identificação: ");
     int n_empresa = sc.nextInt();
     func.setN_empresa(n_empresa);



     arrayf.add(func);
    
System.out.println ("Foi adicionado um Funcionario ");
System.out.println ("===========================================");
}

  static  public void listarFuncionarios()
{  
//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()) {
     Funcionario element = 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);
}
*/
    }
static public  void mostrarCaracteristicas(Pessoa obj) {


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");

    }



        public static void main(String arg[]) {
      
            // Menu
            int menuSelect = 0;
            do {
            System.out.println("Selecione a opção sff");
            System.out.println("");
            System.out.println("(1) - Funcionario      :     (2) - Cliente     :     (3) - Recursos     :     (0) - Sair");
            Scanner scan = new Scanner(System.in);
            menuSelect = scan.nextInt();
       
            switch (menuSelect)
            {
                case 1:
                    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;
                     
                case 2:
                    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;
                    }
                case 3:
                    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.

Criado 22 de dezembro de 2010
Ultima resposta 24 de dez. de 2010
Respostas 19
Participantes 5