Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Código não executa

Não estou conseguindo rodar o código. Fiz da mesma forma do vídeo, porém pude ver que tenho mais coisas nas minhas classes, só fiz acrescentar o .Nome que era o lógico fazer, já que o método iria setar um valor a ele. Mas na hora de compilar e executar, ele até compila tranquilo, porém dá esse erro:

System.NullReferenceException: 'Referência de objeto não definida para uma instância de um objeto.'

Não sei mas como seguir daqui, em baixo está todas as minhas classes para demostrar o que fiz, espero poder resolver isso.

CLASSE FORM

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            Conta conta1 = new Conta();
            conta1.Titular.Nome = "Victor";
            textoTitular.Text = conta1.Titular.Nome;
;        }
    }
}

CLASSE CONTA

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CaixaEletronicoForm
{
    class Conta
    {
        //INICIO DOS ATRIBUTOS DE CONTA
        public Cliente Titular { get; set; } //Leitura aberta e Escrita aberta (Property)  
        public int Numero { get; set; } //Leitura aberta e Escrita aberta (Property) 
        public double Saldo { get; private set; } //Leitura aberta e Escrita fechada (Property)
        public int Agencia { get; set; } //Leitura aberta e Escrita aberta (Property) 

        //METODO PARA SACAR
        public void sacar(double valorSaque)
        {
            if (valorSaque > 0 && valorSaque <= this.Saldo)
            {
                this.Saldo -= valorSaque + 0.10; //Desconto de $0.10 a cada saque
            }
        }

        //METODO PARA DEPOSITAR
        public void depositar(double valorDeposito)
        {
            if (valorDeposito > 0)
            {
                this.Saldo += valorDeposito;
            }
        }

        //METODO PARA TRANSFERIR
        public void transferir(double valorTransferencia, Conta destino)
        {
            this.sacar(valorTransferencia);
            destino.depositar(valorTransferencia);
        }

        //METODO PARA VER RENDIMENTO ANUAL
        public double CalculaRendimentoAnual()
        {
            double SaldoNaqueleMes = this.Saldo;

            for (int i = 0; i < 12; i++)
            {
                SaldoNaqueleMes *= 1.007;
            }

            double rendimento = SaldoNaqueleMes - this.Saldo;

            return rendimento;
        }

        //METODO PARA VER GANHO ANUAL
        public double ganhoAnual()
        {

            double valorGanhoAnual = this.Saldo * 2;

            return valorGanhoAnual;
        }
    }
}

CLASSE CLIENTE

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CaixaEletronicoForm
{
    class Cliente
    {
        //INICIO DOS ATRIBUTOS DE CLIENTE
        public string Nome; //{ get; set; }
        public int Idade { get; set; }
        private string rg;
        public string Rg
        {
            get
            {
                return this.rg;
            }
            set
            {
                this.rg = value;
            }
        }
        private string cpf;
        public string Cpf
        {
            get
            {
                return this.cpf;
            }
            set
            {
                this.cpf = value;
            }
        }
        public string Endereco { get; set; }

        //CONSTRUCTOR(s)
        public Cliente(string nome)
        {
            this.Nome = nome;
        }

        public Cliente() { }

        //METODO PARA SABER SE É MAIOR DE IDADE
        public bool EhMaiorDeIdade
        {
            get
            {
                return this.Idade >= 18;
            }
        }
    }
}
2 respostas
solução!

Oi Otacílio, tudo bom?

Lembra que, agora que criamos uma classe para representar um Cliente, precisamos criar um cliente novo e atribuir ele ao titular da nossa conta:

 private void Form1_Load(object sender, EventArgs e)
        {
            Conta conta1 = new Conta();
       conta1.Titular = new Cliente(); // aqui criamos um cliente novo e dizemos que o titular da nossa conta1 guarda esse cliente
            conta1.Titular.Nome = "Victor";
            textoTitular.Text = conta1.Titular.Nome;
;        }

Abraço e bons estudos!

Show de bola André. Captado a mensagem. Muito obrigado

Abraços.