1
resposta

Construtores com Classes

Se eu quiser criar uma class Conta e outra Cliente para um banco, como eu faria no construtor da class Conta e no main para instanciar as informações? Note também que está dando erro na referencia para usar o get no main.. O meu código por enquanto está assim:

Main

namespace AULAS
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Conta conta = new Conta(1000.0,"000-000");
            Cliente titular = new Cliente("Thiago","1111-111");
            conta.titular = titular;


            MessageBox.Show(" " + titular.getNome() + " " + titular.getCpf());

        }
    }
}

Conta

namespace AULAS
{
    public class Conta
    {
        public Cliente titular { get; set; }
        public double saldo { get; private set; }
        public String agencia { get; private set; }

        public Conta(double saldo, String agencia) {
            this.saldo = saldo;
            this.cpf = cpf;
        }

        //MÉTODOS
        public void Saca(double saque) {
            this.saldo -= saque;
        }

        public void Deposita(double deposito) {
            this.saldo += deposito;
        }

        public void Transfer(double valor, Conta destino) {
            this.Saca(valor);
            destino.Deposita(valor);
        }
    }
}

Cliente

namespace AULAS
{
    public class Cliente
    {
        public String nome { get; private set; }
        public String cpf { get; private set; }

        public Cliente(String nome, String cpf) {
            this.nome = nome;
            this.cpf = cpf;
        }

    }
}
1 resposta

Você quer receber uma instância de Cliente no construtor da Conta? Se for, bastaria criar o parâmetro no construtor:

public Conta(double saldo, String agencia, Cliente titular) {
  this.saldo = saldo;
  this.cpf = cpf;
  this.titular= titular;
}

e na Main, criar o titular antes de criar a conta:

Cliente titular = new Cliente("Thiago","1111-111");
conta.titular = titular;
Conta conta = new Conta(1000.0,"000-000", titular);

Se o erro de referência do get no main for:

MessageBox.Show(" " + titular.getNome() + " " + titular.getCpf());

É por que esses métodos não existem na classe Cliente.

Como você colocou o get público nos atributos da classe Cliente, você pode pegar o conteúdo deles simplesmente usando:

MessageBox.Show(" " + titular.nome + " " + titular.cpf);