NULL_System.out.println("Nome, Saldo, Cpf Rodrigo: " + rodrigo.cliente.getEndereco());

6 respostas
rodrigo_salla
public class Conta 
{
	private int numeroDaConta;
	public Cliente cliente = new Cliente(null, null, null);
	private double saldoDaConta;
	private double limiteDaConta;
		
	public Conta(int numeroDaConta, Cliente cliente, double saldoDaConta, double limiteDaConta)
	{
		this.setNumeroDaConta(numeroDaConta);
		this.setSaldoDaConta(saldoDaConta);
		this.setLimiteDaConta(limiteDaConta);
	}
	
	public int getNumeroDaConta()
	{
		return this.numeroDaConta;
	}
	
	public void setNumeroDaConta(int numeroDaConta)
	{
		this.numeroDaConta = numeroDaConta;
	}
	
	public double getSaldoDaConta()
	{
		return this.saldoDaConta;
	}
	
	private void setSaldoDaConta(double saldoDaConta)
	{
		this.saldoDaConta = saldoDaConta;
	}
	
	public double getLimiteDaConta()
	{
		return this.limiteDaConta;
	}
	
	private void setLimiteDaConta(double limiteDaConta)
	{
		this.limiteDaConta = limiteDaConta;
	}
	public boolean saqueConta(double valor)
	{
		if(Validacao.validaSaque(saldoDaConta, valor))
		{
			this.saldoDaConta -= valor;
			return true;
		}
		else
		{
			return false;
		}
	}
	public void depositoConta(double valor)
	{
		this.saldoDaConta += valor;
	}
	
	public boolean transferirDinheiroParaConta(double valor, Conta destino)
	{
		if(saqueConta(valor))
		{
			destino.depositoConta(valor);
			return true;
		}
		else
		{
			return false;
		}
	}
}
public class Cliente 
{
	public String nome;
	public String endereco;
	public String cpf;
		
	public Cliente(String nome, String endereco, String cpf)
	{
		this.setNome(nome);
		this.setEndereco(endereco);
		this.setCpf(cpf);
	}
	
	public String getNome()
	{
		return this.nome;
	}
	
	public void setNome(String nome)
	{
		this.nome = nome;
	}
	
	public String getEndereco()
	{
		return this.endereco;
	}
	
	public void setEndereco(String endereco)
	{
		this.endereco = endereco;
	}
	
	public String getCpf()
	{
		return this.cpf;
	}
	
	public void setCpf(String cpf)
	{
		this.cpf = cpf;
	}
}
public class Programa 
{
	public static void main(String[] args) 
	{
		Conta rodrigo = new Conta(1, new Cliente("Rodrigo", "Rua trinta, 710", "cpf30"), 1000.0, 2000.0);
		//Conta neiva = new Conta(1, new Cliente("Neiva", "Rua vinte e tres, 1965", "cpf41"), 1000.0, 2000.0);
				
		//rodrigo.cliente.getCpf();
		//rodrigo.transferirDinheiroParaConta(1001, neiva);
		

		
		System.out.println("Saldo Rodrigo: " + rodrigo.cliente.getEndereco());
		//System.out.println("Saldo Neiva  : " + neiva.getSaldoDaConta());
		
	}

}

Na classe Conta eu uso a clase Cliente para que toda conta tenha um cliente, não sei se está certo também, mas o grande problema que não consigo resolver é quando tento acessar na classe Programa (main)através de System.out.println("Saldo Rodrigo: " + rodrigo.cliente.getEndereco()); //getNome(), getCpf()... o resultado é null, por que? alguem poderia por gentileza ajudar? o que estou fazendo errado?

Muito obrigado!!!
Rodrigo

6 Respostas

cristianomariano

public Conta(int numeroDaConta, Cliente cliente, double saldoDaConta, double limiteDaConta) { this.setNumeroDaConta(numeroDaConta); this.setSaldoDaConta(saldoDaConta); this.setLimiteDaConta(limiteDaConta); }

Você recebe um parâmetro do tipo Cliente nesse construtor, mas não faz nada com ele. Tente fazer isso.

public Conta(int numeroDaConta, Cliente cliente, double saldoDaConta, double limiteDaConta) { this.setNumeroDaConta(numeroDaConta); this.setSaldoDaConta(saldoDaConta); this.setLimiteDaConta(limiteDaConta); this.cliente = cliente; }

zetamayossi

Exatamente como o camarada dai de cima posto…

Vc nao esta setando o cliente… dai logico… esta chegando null…

Mude o construtor de conta… vc setou tudo menos o cliente!

Luiz_Aguiar
public Cliente cliente = new Cliente(null, null, null);

Se vai setar o cliente no contrutor da sua classe Conta, deixa o objeto cliente sem ser instanciado:

public Cliente cliente;

e evite fazer usar null para instanciar objetos, assim vc evita os NPE da vida, e não é uma prática muito boa usar null pelo código.

zetamayossi

Agora que eu vi… que negocio é esse do cliente?!.. oo lookkko

public Cliente cliente = new Cliente(null, null, null);

Meu, faz isso nao…
Apenas declara ele…

private Cliente cliente;

Depois vc seta ele no construtor de conta…

public Conta(int numeroDaConta, Cliente cliente, double saldoDaConta, double limiteDaConta) { this.numeroDaConta = numeroDaConta; this.saldoDaConta = saldoDaConta; this.limiteDaConta = limiteDaConta; this.cliente = cliente; // Isso aki q tah faltando!!! }

Utilize variaveis private… é uma boa forma de trabalhar… pra isso existem os setters e getters…

rodrigo_salla

Muito obrigado peasoal, aprendi mais uma, muito obrigado a todos pela ajuda de sempre.
Rodrigo

Alexandre

Outra…procura não colocar o acesso aos atributos da sua classe “public”, e sim “private”, oferecendo sim, um método get/set pra esse atributo.
CYA!

Criado 22 de dezembro de 2006
Ultima resposta 22 de dez. de 2006
Respostas 6
Participantes 5