Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Encapsulamento e Navegação Pelos Objetos

Galera, eu estava testando os limites dos encapsulamentos. Já temos as classes clientes e contas feitas... No começo do curso foi dito para criar um atributo na classe Conta:

class Conta { public int Numero { get; set; }

public double Saldo { get; private set; }

public Cliente titular;

public void Saca(double valor) { this.Saldo -= valor; }

public void Deposita(double valor) { this.Saldo += valor; }

public void Transfere(double valor, Conta destino) { this.Saldo -= valor; destino.Saldo += valor; } }

pois ao instanciá-los:

Cliente cliente1= new Cliente(); Conta conta1 = new Conta(); conta1.titular = fulano;

poderia se obter o mesmo resultado para buscar tanto para cliente1.nome quanto para conta1.titular .

Mas ao fazer as classes usando encapsulamentos assim:

class Conta {

public int Numero { get; set; }

public double Saldo { get; private set; }

public Cliente titular; }

class Cliente

{ public string Nome { get; private set; }

public string Rg { get; set; }

private string cpf;

public string Endereco { get; set; }

public string Idade { get; set; }

public Cliente (string nome, string rg, string cpf) { this.Nome = nome; this.Rg = rg; this.cpf = cpf; }

public Cliente() { }

public string Nomeia {

set { this.Nome = value; } }

public string Cpf { get { return cpf; }

set { this.cpf = value; }

}

} Ao fazer o mesmo procedimento e tentar imprimir a mensagem na tela :

MessageBox.Show("Nome: " + conta1.titular);

O que aparece no lugar do nome que eu defini, é o nome do projeto do Visual Studio...

o que acontece?

1 resposta
solução!

Olá Renan,

Titular é um atributo do tipo Cliente, quando você imprime conta1.Titular ele vai mostrar o nome completo da classe cliente. O que você quer fazer é:

MessageBox.Show("Nome: " + conta1.titular.Nome);

;)