Exibição dos dados após cadastro

Não estou conseguindo imprimir os dados. só aparece null toda hora.

Classe PrincipalPessoa

import java.util.Scanner;


/**
 *
 * @author Daniel
 */
public class PrincipalPessoa {
    static private int warn=0;
    static private String dataNasc;
   /* warn serve para saber se o ano, mes e dia foram digitados de forma 
      adequada, do contrário ele inicia sempre uma nova solicitação atraves do
      metodo recebeDataNasc();
    */
    
    public static void main(String[] args) {

        Pessoa myPessoa = new Pessoa ();
        
        String cpf;
        String nome;
        
       
        
        Scanner x = new Scanner (System.in);
        System.out.println("i-iniciar - s-sair");
        String escolha=x.next();
        
        
        while (escolha.equalsIgnoreCase("i")) {
        
        System.out.println("selecione o opção");
        System.out.println("1-Imprimir dados");
        System.out.println("2-cadastrar dados");
        int op=x.nextInt();
        
        
        
        if (op==1) {//Exbição/impressao
            myPessoa.mostraImpressao();
           
                   }
        
        if (op==2) {//cadastro
            System.out.println("Informe cpf ");
            cpf=x.next();
            
             
            System.out.println("Informe nome ");
            nome=x.next();
            
           Pessoa mypp = new Pessoa (cpf, nome, dataNasc);//teste
           
           
            if (cpf!=null && nome!=null) {
                do {
                PrincipalPessoa mp=new PrincipalPessoa();
                mp.recebeDataNasc();
                
                    } while (warn==0);
                Pessoa myPersona = new Pessoa (cpf, nome, dataNasc);
                                         }            

                    }
        
                                            }; 
        
       
        

                                            }
    
    
    
    void recebeDataNasc() {
         
        int ano;
        int mes;        
        int dia=0;
        
        
        int c=0;//saber se data de nascimento foi preenchida corretamente 
        
        Scanner x = new Scanner (System.in);
        
        
        System.out.println("Informe data de nascimento (AAAA/MM/DD)");
            System.out.println("Ano");
            ano=x.nextInt();
           
             if (ano>=1900 && ano<=2011) 
                    System.out.println("Mês (1-12)");
                    mes=x.nextInt();
                    c=c+1;
                    
                    if (mes<0 || mes>12) {
                        c=0;
                        System.out.println("mês inválido");
                                         }
                    
                    if (mes>=1 && mes<=12) {
                            System.out.println("Dia (1-31");
                            dia=x.nextInt();
                            c++;
                            
                                if (dia<0 || dia>31) {
                                    dia=0;
                                    System.out.println(" dia inválido");
                                                     }
                                
                                if (mes==2&&dia>28) {
                                    System.out.println("dia e mes incompativel");
                                                    }
                                
                                           }
                    
            
                    else 
                        System.out.println("Data invalida. Tente novamente");
            
             
          
           
           
            
            
            
            
                if (c==2 && dia!=0){
                    dataNasc= ano+"/"+mes+"/"+dia;
                    warn=1;               
                                    }
                
                
                            }
    
   
    
    
    
    
                            }[/code]

[b]classe Pessoa[/b]
[code]/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Daniel
 */
public class Pessoa {
 
    
private String cpf;
private String nome;
private String dataNasc;

public Pessoa () {
    
                 }


public Pessoa (String mycpf, String mynome, String mydataNasc) {
this.cpf=mycpf;
this.nome=mynome;
this.dataNasc=mydataNasc;
    
                                                               }
String getCpf () {
    return cpf;
                 }


String getNome(){
    return nome;
                }


String getDataNasc () {
    return dataNasc;
                      }


void mostraImpressao () {
    System.out.println("nome "+getNome());
    System.out.println("cpf "+getCpf());
    System.out.println("data de nascimento "+getDataNasc());
                        

                       }


}

Coloca os métodos setters na classe pessoa, não tem como você atribuir valores a um atributo privado a não ser por eles, assim:

public class Pessoa {

   private String cpf;   
   private String nome;   
   private String dataNasc;
	
   public Pessoa() {

   }

   public Pessoa(String cpf, String nome, String dataNasc) {
		
      this.cpf = cpf;
      this.nome = nome;
      this.dataNasc = dataNasc;

   }

   public String getCpf() {

      return cpf;
 
   }

   public void setCpf(String cpf) {

      this.cpf = cpf;

   }

   public String getNome() {

      return nome;

   }

   public void setNome(String nome) {

      this.nome = nome;

   }

    
   public String getDataNasc() {

      return dataNasc;

   }

   public void setDataNasc(String dataNasc) {

      this.dataNasc = dataNasc;

   }

   void mostraImpressao () {   
   
      System.out.println("nome "+getNome());   
      System.out.println("cpf "+getCpf());   
      System.out.println("data de nascimento "+getDataNasc());   
                           
   } 
	
}

Não entendi. :?:

Você não consegue atribuir uma valor a uma váriavel com visibilidade private sem ter o método set para ela, na sua classe só tem get, que está nulo já que a variável não recebe nenhum valor a não ser pelo set correspondente dela.

continuo sem entender. :shock:

o que os colegas estao tentando lhe dizer é que voce nao tem metodo set para os atributos da classe… presumo que se voce fez metodo get… deva saber como funciona o set… a menos que tenha pego o codigo de outro lugar … outro detalhe… pode dizer exatamente o que voce nao esta entendendo? fica mais facil de explicar

o problema que voce esta tendo é pq voce nao inicializou o conteudo dos atributos do seu objeto pessoa… repare que no construtor ele pede os 3 parametros… mas quando voce construiu o objeto … nao passou nenhum parametro

  public static void main(String[] args) {  
  
        Pessoa myPessoa = new Pessoa ();  // onde esta os parametros do construtor?
          
        String cpf;  
        String nome;  
          
         
          
        Scanner x = new Scanner (System.in);  
        System.out.println("i-iniciar - s-sair");  
        String escolha=x.next();  
          
          
        while (escolha.equalsIgnoreCase("i")) {  
          
        System.out.println("selecione o opção");  
        System.out.println("1-Imprimir dados");  
        System.out.println("2-cadastrar dados");  
        int op=x.nextInt();  

[code]public static void main(String[] args) {

  String cpf;    
  String nome;    
      
 Pessoa myPessoa = new Pessoa (cpf, nome, dataNasc);  // assim? 
      
  Scanner x = new Scanner (System.in);    
  System.out.println("i-iniciar - s-sair");    
  String escolha=x.next();    
      
      
  while (escolha.equalsIgnoreCase("i")) {    
      
  System.out.println("selecione o opção");    
  System.out.println("1-Imprimir dados");    
  System.out.println("2-cadastrar dados");    
  int op=x.nextInt(); [/code]

fim isso (acima) mas deu erro.

      String cpf;      
      String nome;      
     Pessoa myPessoa = new Pessoa (cpf, nome, dataNasc);  // assim?   

Tá sabendo que nesse momento cpf e nome são null né?

Dica 1
Desenvolva primeiro um projeto mais simples possível… Funcionou? blz … Evolua-o para o próximo nível … E assim por diante.

Dica 2
A IDE lhe informa o problema, apenas leia.
“The local variable nome may not have been initialized”

Boa sorte!

bom… continuo sem saber o que fazer… não é necessario fazer um array de tamanho n para salvar os dados?