Problemas com a chamda de um método ![RESOLVIDO]

4 respostas
ronibass

Ola amigos, mais uma vez venho pedir a ajuda de vocês para um exercício que tenho feito. Bom, tenho certeza que é algo muito simples, mas como ainda não tenho a experiência em OO estou apanhando bastante rsrs.
Tenho uma classe "Funcionario", "Data" e "TestaFuncionario", gostaria de fazer com que a classe "Funcionario" use o método da classe "Data" mas percebi que existe alguma coisa errada quando chamo o método "mostraData" dentro do método "mostra", eu não posso fazer isso porque esta dentro de um método void ? achei estranho porque quando eu chamava o método "mostra" sem o "mostraData" dentro dele dava tudo certo, mas quando eu coloco o método "mostraData" dentro do método "mostra" ele não aparece nada, sera que consegui explicar direito? rsrs
Segue a implementação:

import javax.swing.JOptionPane;
class Data{
        private int dia;
        private int mes;
        private int ano;
      public Data{
        dia = Integer.parseInt(JOptionPane.showIputDialog(null,"Entre com o dia");        
        mes = Integer.parseInt(JOptionPane.showInputDialog(null,"Entre com o mes");
        ano = Integer.parseInt(JOptionPane.showInputDialog(null,"Entre como ano");  
      }

        public mostraData(){
        JOptionPane.showMessageDialog(null, this.dia + "/" + this.mes + "/" + this.ano);
        }
        




import javax.swing.JOptionPane;
classe Funcionario{
        private String nome;
        private String rg;
        private double salario;
        private Data data;
     public Funcionario{
        nome = JOptionPane.showInputDialog(null,"Informe o nome do funcionario");
        rg = JOptionPane.showInputDialog(null,"Informe o RG do funcionario");
        salario = Float.parseFloat(JOptionPane.showInputDialog(null,"Informe o salario do funcionario")
        Data data = new Data();  }

// outros métodos

        public void mostra(){
        JOptionPane.showMessageDialog(null,"Nome: "+this.nome+"\n"+
                                                               "RG: "+this.rg+"\n"+
                                                                "Salário: "+this.salario"); 
                                                             data.mostraData();
}

import javax.swing.JOptionPane;
classe TestaFuncionario{
        
        public static void main(String[]  args){
   Funcionario funcionario = new Funcionario();
   funcionario.mostra();
}
}
Obrigado a todos !

4 Respostas

lina

Oi,

Não cheguei a analisar o código… mas o que me chamou atenção foi isso: thins

public mostraData(){ JOptionPane.showMessageDialog(null, thins.dia + "/" + this.mes + "/" + this.ano); }

Tchauzin!

ronibass

ah isso foi erro de digitação mesmo rsrsrs, era pra ser um “this”, é que eu escrevi este codigo direto aqui e nem percebi este erro mas ja vou concertar
Obrigado :slight_smile:

lina

Oi,

Agora eu vi! Você está criando uma nova referencia de Data, no qual não está sendo usada em nenhum lugar, sendo que poderia aproveita-la acoplando-a em sua variável “global” do tipo Data:

private Data data; public Funcionario(){ nome = JOptionPane.showInputDialog(null,"Informe o nome do funcionario"); rg = JOptionPane.showInputDialog(null,"Informe o RG do funcionario"); salario = Float.parseFloat(JOptionPane.showInputDialog(null,"Informe o salario do funcionario")); Data data = new Data(); // AQUI }

Você deveria fazer:

private Data data; public Funcionario(){ nome = JOptionPane.showInputDialog(null,"Informe o nome do funcionario"); rg = JOptionPane.showInputDialog(null,"Informe o RG do funcionario"); salario = Float.parseFloat(JOptionPane.showInputDialog(null,"Informe o salario do funcionario")); data = new Data(); }

Tchauzin!

ronibass

Ah tah agora que eu percebi isso rsrs, obrigado pela ajuda
Voce acha que fica bom desta maneira que estou usando a classe Data?
Ou acha que ficaria melhor de uma outra maneira ?
Muito obrigado

Criado 6 de julho de 2012
Ultima resposta 6 de jul. de 2012
Respostas 4
Participantes 2