2016-09-03 7 views
1

したがって、私は3つのクラス:TesteFuncionario,FuncionarioおよびDataを持っています。 私は何をしたい、この方法は、しかしnullを返しSystem.out.println("Data de admissão: "+getData());最後の行を、およそf1Java:別のクラスのオブジェクトを使用する方法

public void imprimirFuncionario(){ 
    System.out.println("Nome: "+nome); 
    System.out.println("Departamento: "+departamento); 
    System.out.println("Salario: "+salario); 
    System.out.println("RG: "+rg);   
    System.out.println("Data de admissão: "+getData()); 
} 

情報を出力しますFuncionario

f1.imprimirFuncionario(); 

からメソッドを呼び出すことです。

私は、この行にSystem.out.print("Data de admissão: "+tempDataAtual+"\n");が印刷する同じデータを印刷します。

public class TesteFuncionario { 

    public static void main(String[] Args) { 

     Funcionario f1 = new Funcionario(); 

     Scanner input = new Scanner(System.in); 

     System.out.println("Digite o nome: "); 

     String tempNome = input.nextLine(); 
     f1.setNome(tempNome); 


     System.out.println("Digite o RG: "); 

     int tempRg = input.nextInt(); 
     f1.setRg(tempRg); 


     System.out.println("Digite o departamento: "); 

     String tempDepartamento = input.next(); 
     f1.setDepartamento (tempDepartamento); 


     System.out.println("Digite o salario: "); 

     double tempSalario = input.nextDouble(); 
     f1.setSalario (tempSalario); 


     int diaTemp, mesTemp, anoTemp; 

     System.out.println("Informe a data de admissão (dd mm aaaa): "); 

     diaTemp = input.nextInt(); 
     mesTemp = input.nextInt(); 
     anoTemp = input.nextInt(); 

     Data dataAtual = new Data(diaTemp, mesTemp, anoTemp); 


     String tempDataAtual = dataAtual.getData(); 

     System.out.println("\n *** Antes do aumento ***\n"); 

     System.out.print("Ganho Anual: "); 
     System.out.println(f1.calculaGanhoAnual()); 
     System.out.print("Data de admissão: "+tempDataAtual+"\n"); 
     f1.imprimirFuncionario(); 

     System.out.println("\n *** Depois do aumento ***\n"); 

     f1.receberAumento(20); 

     System.out.print("Ganho Anual: "); 
     System.out.println(f1.calculaGanhoAnual()); 
     System.out.print("Data de admissão: "+tempDataAtual+"\n"); 
     f1.imprimirFuncionario(); 
    } 
} 

public class Data { 

    private int dia, mes, ano; 

    public Data(int dia, int mes, int ano) { 
     this.dia = dia; 
     this.mes = mes; 
     this.ano = ano; 
    } 

    public void setDia(int dia){ 
     this.dia = dia; 
    } 

    public int getDia(){ 
     return dia; 
    } 

    public void setMes(int mes){ 
     this.mes = mes; 
    } 

    public int getMes(){ 
     return mes; 
    } 

    public void setAno(int ano){ 
     this.ano = ano; 
    } 

    public int getAno(){ 
     return ano; 
    } 

    public void setData(int dia, int mes, int ano){ 
     this.dia = dia; 
     this.mes = mes; 
     this.ano = ano; 
    } 
    public String getData(){ 
     return dia + "/" + mes + "/" + ano; 
    } 

    public void imprimirData(){ 
     System.out.println("Data: "+dia+"/"+mes+"/"+ano); 
    } 
} 

public class Funcionario { 

    private String nome, departamento, data; 
    private double salario; 
    private int rg; 

    public void setNome (String nome){ 
     this.nome = nome; 
    } 

    public String getNome(){ 
     return nome; 
    } 

    public void setDepartamento(String departamento){ 
     this.departamento = departamento; 
    } 

    public String getDepartamento(){ 
     return departamento; 
    } 

    public void setData (String data){ 
     this.data = data; 
    } 

    public String getData(){ 
     return data; 
    } 

    public void setSalario (double salario){ 
     this.salario = salario; 
    } 

    public double getSalario(){ 
     return salario; 
    } 

    public void setRg(int rg){ 
     this.rg = rg; 
    } 

    public int getRg(){ 
     return rg; 
    } 

    public void receberAumento(int porcentagem){ 
     salario = salario + salario*porcentagem/100; 
    } 

    public double calculaGanhoAnual(){ 
     return salario*12; 
    } 

    public void imprimirFuncionario(){ 
     System.out.println("Nome: "+nome); 
     System.out.println("Departamento: "+departamento); 
     System.out.println("Salario: "+salario); 
     System.out.println("RG: "+rg);   
     System.out.println("Data de admissão: "+getData()); 
    } 
} 

答えて

1

(これはTesteFuncionarioクラスに位置しています)Funcionarioはそのデータ列セットを持っていないので、それはnullです。

mainメインTesteFuncionarioの方法では、電話をする必要があります。

f1.setData("value you want");

これは次いでgetData()に返されたデータの値を設定します。

1

f1にはsetDataが必要です。 f1.setData(tempDataAtual);

public class TesteFuncionario { 

    public static void main(String[] Args) { 

     Funcionario f1 = new Funcionario(); 

     Scanner input = new Scanner(System.in); 

     System.out.println("Digite o nome: "); 

     String tempNome = input.nextLine(); 
     f1.setNome(tempNome); 


     System.out.println("Digite o RG: "); 

     int tempRg = input.nextInt(); 
     f1.setRg(tempRg); 


     System.out.println("Digite o departamento: "); 

     String tempDepartamento = input.next(); 
     f1.setDepartamento (tempDepartamento); 


     System.out.println("Digite o salario: "); 

     double tempSalario = input.nextDouble(); 
     f1.setSalario (tempSalario); 


     int diaTemp, mesTemp, anoTemp; 

     System.out.println("Informe a data de admissão (dd mm aaaa): "); 

     diaTemp = input.nextInt(); 
     mesTemp = input.nextInt(); 
     anoTemp = input.nextInt(); 

     Data dataAtual = new Data(diaTemp, mesTemp, anoTemp); 


     String tempDataAtual = dataAtual.getData(); 
     f1.setData(tempDataAtual); 
     System.out.println("\n *** Antes do aumento ***\n"); 

     System.out.print("Ganho Anual: "); 
     System.out.println(f1.calculaGanhoAnual()); 
     System.out.print("Data de admissão: "+tempDataAtual+"\n"); 
     f1.imprimirFuncionario(); 

     System.out.println("\n *** Depois do aumento ***\n"); 

     f1.receberAumento(20); 

     System.out.print("Ganho Anual: "); 
     System.out.println(f1.calculaGanhoAnual()); 
     System.out.print("Data de admissão: "+tempDataAtual+"\n"); 
     f1.imprimirFuncionario(); 

    } 
} 
関連する問題