Orientacao a objeto

4 respostas
xivan

To com uma dúvida em como faço para ler o nome que eu setei em usuariosCad() no metodo visualizarUsuario()... como faço para dar um getNome ali nesse metodo? aquela linha ali ta errada me ajudem valeu

import javax.swing.*;
public class Pessoa {
	public void usuariosCad(){
		No novo = new No();
		novo.setIdade(Integer.parseInt(JOptionPane.showInputDialog("Idade")));
		novo.setNome((JOptionPane.showInputDialog("Nome")));
		novo.setSexo((JOptionPane.showInputDialog("Sexo")));
	}
	public void visualizarUsuario(){
 
		
	JOptionPane.showMessageDialog(null, "O nome é:" +novo.getNome());
	
	}
}

ps: A classe No ta feita..

4 Respostas

J

boa noite!
a variável de referência novo, tu criou no metodo USUARIOSCAD(), logo,
tu tenta acessar essa variável dentro de OUTRO método???

se foi isso mesmo, não compilará (o método não “enchergará” a variável (fora de escopo))
se não, …
disponibiliza mais linhas de código que está relacionado, certo?
estamos aqui! :wink:

glauco.todesco

Olá,

O Josueh está correto. Se vc declarar o novo  como atributo da classe vai funcionar. Mas você tem que ver se é realmente isso que vc quer fazer.
 []s

Glauco Todesco

public class Pessoa 
 {  
     No novo = new No();  

    public void usuariosCad(){  
         novo.setIdade(Integer.parseInt(JOptionPane.showInputDialog("Idade")));  
         novo.setNome((JOptionPane.showInputDialog("Nome")));  
         novo.setSexo((JOptionPane.showInputDialog("Sexo")));  
     }  

     public void visualizarUsuario(){  
   
           
     JOptionPane.showMessageDialog(null, "O nome é:" +novo.getNome());  
       
     }  
}
lucianno

hhm gostei, e aproveitei e fiz umas coisas para testar:

Classe Pessoa

import javax.swing.*;

public class Pessoa {
    
    No novo = new No();

    public void usuariosCad() {        
        
        novo.setIdade(Integer.parseInt(JOptionPane.showInputDialog("Idade")));
        novo.setNome((JOptionPane.showInputDialog("Nome")));
        novo.setSexo((JOptionPane.showInputDialog("Sexo")));
        
    }

    public void visualizarUsuario() {

        JOptionPane.showMessageDialog(null, "O nome é:" + novo.getNome() + 
                "\nA idade:" + novo.getIdade() + "\nO sexo:" + novo.getSexo() );

    }
}

Classe No

public class No {

    private int idade;
    private String nome;
    private String sexo;

    public void setIdade(int idade) {
        this.idade = idade;
    }

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

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

    public int  getIdade() {
        return idade;
    }

    public String getNome() {
        return nome;
    }

    public String getSexo() {
        return sexo;
    }
}

Classe AplicativoPessoa

public class AplicativoPessoa {
    public static void main( String args[] ){
        
        // controi uma pessoa
        Pessoa p1 = new Pessoa();
        
        // inicia o cadastro dos dados 
        // da p1
        p1.usuariosCad();
        
        p1.visualizarUsuario();
        
        
    }

}

abração

Luciano

J

olá!
se tu quer ‘fazer’ um método que Represente a Classe (os dados contidos no Objeto)
pesquisa sobre o método toString() de Object, no exemplo tu entende melhor :wink:

class Aluno {
  int matricula;
  String nome;

  public Aluno() {
    matricula = 10107;
    nome = "chico bento";
  }

  @Override
  public String toString() {
    return "Aluno: " + matricula + " " + nome;
  }
}
....
public static void main(String[] args) {
  Aluno a = new Aluno();
  System.out.println("Resultado: " + a );  // "Resultado:" + a.toString() 
}
....

dessa forma, a saída seria:

Resultado: Aluno: 10107 chico bento

entendeu?!?
assim, o teu objeto pode ser tratado como se fosse uma “string” …
toda vez que tu “somar” uma string com teu objeto, por exemplo, o método toString é chamado implicitamente para representar todo o objeto

bons códigos com toString()! :wink:
flws!

Criado 16 de outubro de 2008
Ultima resposta 17 de out. de 2008
Respostas 4
Participantes 4