Duvida para apresentar idade

5 respostas
H

Ola pessoal esse programa que eu estou fazendo eu gostaria apenas de uma luz porque estou começando a programar em Java.
Como eu faço para apresentar o nome cuja idade é mais avançada. Eu tenho criar um metodo dentro da classe principal que é o main ou dentro da classe pessoa que já existe?
Abraço a todos

import javax.swing.JOptionPane;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author m531
 */
public class Principal
{
   public Principal()
   {
       Pessoa p = new Pessoa("Rolf","000",43);
        Pessoa p1 = new Pessoa();
        p1.setIdade(50);
        Pessoa[]vetor = new Pessoa[2];
       
        for(int x=0; x<vetor.length; x++)
        {
            vetor[x] = new Pessoa();
            String nome = JOptionPane.showInputDialog("Digita o seu Nome");
            vetor[x].setNome(nome);
            System.out.println("Nome"+ vetor[x].nome);

                   String idade = JOptionPane.showInputDialog("Digita a sua Idade");
                   vetor[x].setIdade(Integer.parseInt(idade));
                   idade(Integer.parseInt(idade));
                   System.out.println("Idade"+idade);
            
            String cpf = JOptionPane.showInputDialog("Digita o cpf");
            vetor[x].setCpf(cpf);
            System.out.println("CPF"+ vetor[x].cpf);


             
        }
           
            }

            Colaboradores col = new Colaboradores();
   
   public static void main(String[]args)
   {

         new Principal();
       
   }

   

   public void maiorcaracter()
   {

   }

   public int idade(int x)
   {
       return x;
   }
   public int idadenegativa(int x)
   {
        System.out.println("Não existe idade negativa");
         
         return x;
   }


}

Isso aqui eu não sei se chama de encapsulamento porque eu estou programando no netbeens e ai tem classes separadas esta aqui.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author m53120
 */
public class Pessoa {
     String nome;
     String cpf;
     int idade;

    Pessoa(String string, String string0, int i)
    {
      nome = string;
      cpf = string;
      idade=i;
    }

    public Pessoa()
    {

    }

public void setNome(String x)
{
    nome = x;
}
 public String getNome()
 {
     return nome;
 }
 public void setIdade(int x)
 {
     if(x>0)
     idade = x;
     else
         if(x<0)
      System.out.println("Idade Negativa");
     

 }

    /**
     * @return the cpf
     */
    public String getCpf() {
        return cpf;
    }

    /**
     * @param cpf the cpf to set
     */
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    /**
     * @return the idade
     */
    public int getIdade() {
        return idade;
    }
}

5 Respostas

gpd38

Como vc esta tratando tudo na classe pessoa este metodo que mostra e trata a pessoa com idade mais avançada tambem ficara na classe pessoa

public TIPO NOME_METODO(   ){

//so mostra    --> TIPO = void
//ou
//retorna alguma informação    --> TIPO = String, int, etc

}

Não querendo ser chato, mas tente dar uma organizada em seu codigo.
qualquer coisa estamos aqui.

H

Meu colega poderia dar um exemplo porque eu tenho outros problemas parecidos e com isso poderia brilhar a mente então eu conseguria fazer os outros.
abraço

gpd38

caso queira retornar algo para o main. ( Vc tera que adaptar para seu codigo algumas coisas, mas o basico é isso mesmo )

public String IdadeAvancada(){
String nome = " ";
int idade_avancada = 50;//so suposição

for(int i=0; i< vetor.length; i++){
   if(vetor[i] > idade_avancada){
       nome = nome + vetor[i].getnome();//o metodo getnome captura , pega o nome 
   }
}

return nome;
}

caso nao queira retornar nada

public String IdadeAvancada(){
int idade_avancada = 50;//so suposição

System.out.println("Pessoas com idades avançadas");
for(int i=0; i< vetor.length; i++){
   if(vetor[i] > idade_avancada){
       System.out.println("\n"+vetor[i].getnome());//o metodo getnome captura , pega o nome 
   }
}//for
}//metodo
H

Não estou no trabalho. Teria problema se eu tirasse duvidas no msn contigo mais tarde.
Abraço

gpd38

tentei dar uma organizada no seu codigo.

import javax.swing.JOptionPane;

public class Principal {

	static String nome, cpf;
	static int idade;
	static Pessoa[] vetor;

	public Principal(int quantidade) {
		vetor = new Pessoa[quantidade];
	}// construtor

	// Colaboradores col = new Colaboradores();

	public void maiorcaracter() {
	}

	public static void main(String[] args) {
		new Principal(2);
		for (int x = 0; x < vetor.length; x++) {
			vetor[x] = new Pessoa();

			nome = JOptionPane.showInputDialog("Digita o seu Nome");
			vetor[x].setNome(nome);
			System.out.println("Nome: " + vetor[x].nome);

			idade = Integer.parseInt(JOptionPane
					.showInputDialog("Digita a sua Idade"));
			while (idade <= 0) {
				idade = Integer
						.parseInt(JOptionPane
								.showInputDialog("Idade invalida.\nDigita a sua Idade"));
			}
			vetor[x].setIdade(idade);
			System.out.println("Idade: " + idade);

			cpf = JOptionPane.showInputDialog("Digita o cpf");
			vetor[x].setCpf(cpf);
			System.out.println("CPF: " + vetor[x].cpf);

			System.out.println("");// saltar uma linha

			// Pode ser feito assim tbm
			// vetor[x] = new Pessoa(nome,idade,cpf);

		}// for
	}// main
}// class
public class Pessoa {
	String nome;
	String cpf;
	int idade;

	Pessoa(String nome, int idade, String cpf) {
		this.nome = nome;
		this.cpf = cpf;
		this.idade = idade;
	}

	public Pessoa() {
	}

	public void setNome(String x) {
		nome = x;
	}

	public String getNome() {
		return nome;
	}

	public void setIdade(int x) {
		idade = x;
	}

	public int getIdade() {
		return idade;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

}
Criado 1 de abril de 2010
Ultima resposta 1 de abr. de 2010
Respostas 5
Participantes 2