Prezados,
No exemplo do banco encapsulamento eu copiei uma classe Conta que possui o método saca.Nesse método eu coloquei uma mensagem informando o valor depositado, o titular da conta e o saldo, conforme transcrição:
public void deposita(double valor) {
this.saldo += valor; System.out.println("Foi depositado " + valor + " na conta " + this.titular + " e o seu saldo atual é " + saldo);
}
Depois de ter colcoado o atributo Titular como privado, ao invocar o método deposita, o atributo está sendo carregado como null. na execução da classe TestagetSetter.java. A dúvida é a seguinte: como faço para carregar no nome do Titular, sendo que a classe Cliente não possui o método main, e portanto, o mesmo não será instanciado dentro da classe Conta? Coloquei todas as classes do projeto para melhorar a compreensão.
Conta. java
public class Conta {
private double saldo;
private int agencia;
private int numero;
private Cliente titular;
public double getSaldo() {
return this.saldo;
}
public int getAgencia( ) {
return this.agencia;
}
public void setAgencia(int agencia ) {
this.agencia = agencia;
}
public int getNumero() {
return this.numero;
}
public void setNumero (int numero) {
this.numero = numero;
}
public Cliente getTitular() {
return titular;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
public void deposita(double valor) {
this.saldo += valor;
System.out.println("Foi depositado " + valor + " na conta " + this.titular + " e o seu saldo atual é " + saldo);
}
public boolean saca (double valor) {
if (this.saldo >= valor) {
this.saldo -= valor;
System.out.println("Foi retirado " + valor + "e o seu saldo atual é " + saldo);
return true;
} else {
System.out.println("Faltou dinheiro");
return false;
}
}
public boolean transfere (double valor, Conta destino) {
if (this.saldo >= valor) {
this.saldo -= valor;
destino.deposita(valor);
System.out.println("Foi transferido " + valor + " da conta " + this.titular +
"para a conta " + destino.titular );
return true;
}
else {
System.out.println("Faltou dinheiro");
return false;
}
}
}
public class Cliente {
private String nome; private String cpf; String profissao;
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() { return cpf; }
public void setCpf(String cpf) {
this.cpf = cpf; } }
/-------------------------------------------------------------------------------------/
public class TestaGetSetter {
public static void main (String [] args) {
Cliente Alberto = new Cliente();
Alberto.setNome("Alberto Nunes"); Alberto.setCpf("831.470.635-34");
Conta contadoAlberto = new Conta();
contadoAlberto.setAgencia(8212); contadoAlberto.setNumero(158201);
contadoAlberto.deposita(1500.0);
contadoAlberto.setTitular(Alberto);
System.out.println("Agencia: " + contadoAlberto.getAgencia() + " Numero conta: " + contadoAlberto.getNumero() + " Titular: " + contadoAlberto.getTitular().getNome() + " Saldo: " + contadoAlberto.getSaldo());
}
}