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

Desafio: hora da prática

  1. Criando um construtor para a classe titular:
class Titular {
    public string? Nome {get; set;}
    public string? Cpf {get; set;}
    public string? Endereco {get; set;}

    public Titular(string nome, string cpf, string endereco) {
        Nome = nome; Cpf = cpf; Endereco = endereco;    
    }
}
  1. Criando um construtor para a classe conta:
class Conta {
    public Titular Titular {get; set;}
    public int Agencia {get; set;}
    public int NumeroDaConta {get; set;}
    public double Saldo {get;}
    public double Limite {get; set;}

    public string Informacoes => $"Conta nº {this.NumeroDaConta}, Agência {this.Agencia}, Titular: {this.Titular.Nome} - Saldo: {this.Saldo}";

    public Conta(Titular titular, int agencia, int numeroDaConta, double saldo, double limite) {
        Titular = titular; 
        Agencia = agencia;
        NumeroDaConta = numeroDaConta;
        Saldo = saldo;
        Limite = limite;
    }
}
  1. Criando método para exibir informações da conta + instanciando-a na classe principal.

Conta.cs

class Conta {
    public Titular Titular {get; set;}
    public int Agencia {get; set;}
    public int NumeroDaConta {get; set;}
    public double Saldo {get;}
    public double Limite {get; set;}

    public string Informacoes => $"Conta nº {this.NumeroDaConta}, Agência {this.Agencia}, Titular: {this.Titular.Nome} - Saldo: {this.Saldo}";

    public Conta(Titular titular, int agencia, int numeroDaConta, double saldo, double limite) {
        Titular = titular; 
        Agencia = agencia;
        NumeroDaConta = numeroDaConta;
        Saldo = saldo;
        Limite = limite;
    }
    public void ExibirInformacoes() {
        Console.WriteLine($"Nome: {Titular.Nome}");
        Console.WriteLine($"CPF: {Titular.Cpf}");
        Console.WriteLine($"Endereço: {Titular.Endereco}");
        Console.WriteLine($"Agencia: {Agencia}");
        Console.WriteLine($"Numero da Conta: {NumeroDaConta}");
        Console.WriteLine($"Saldo: R${Saldo}");
        Console.WriteLine($"Limite: R${Limite}");
    }
}

Program.cs

var titular = new Titular ("Roger", "414.313.200-42", "Rua das Araras");
var conta = new Conta(titular, 12, 412, 350, 1000);

conta.ExibirInformacoes();
  1. Para essa tarefa, eu criei uma classe extra de Jogo.cs para representar os jogos a serem adicionados no catalogo.

Jogo.cs

public class Jogo {
    public string? NomeJogo {get; set;}

    public Jogo (string nomeJogo) {
        NomeJogo = nomeJogo;
    }
}

CatalogoJogos.cs

public class CatalogoJogos {
    public string? NomeCatalogo {get;}
    public List<Jogo> ListaJogos = new List<Jogo>();

    public CatalogoJogos (string nome, List<Jogo> listaJogos) {
        NomeCatalogo = nome;
        ListaJogos = listaJogos;
    }
    public void AdicionarJogo(Jogo jogo) {
        ListaJogos.Add(jogo);
    }
    public void RemoverJogo(Jogo jogo) {
        ListaJogos.Remove(jogo);
    }

    public void ExibirJogos() {
        ListaJogos.ForEach(jogo => Console.WriteLine($"Nome Jogo: {jogo.NomeJogo}"));
    }
}

Program.cs

var jogo01 = new Jogo("Art of Fight 1");
var jogo02 = new Jogo ("Art of Fight 2");

var listaJogos = new List<Jogo> {jogo01, jogo02};

Console.Clear();
var catalogo01 = new CatalogoJogos ("Art of Fight Games", listaJogos);
catalogo01.ExibirJogos();
Console.ReadKey();

Console.Clear();
var jogo03 = new Jogo ("Art of Fight 3");
catalogo01.AdicionarJogo(jogo03);
catalogo01.ExibirJogos();
Console.ReadKey();

Console.Clear();
catalogo01.RemoverJogo(jogo01);
catalogo01.ExibirJogos();
1 resposta
solução!

Oi, Diego! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei da forma como você organizou as classes e utilizou construtores pra inicializar os objetos. A separação entre Titular, Conta, Jogo e CatalogoJogos mostra uma boa aplicação de orientação a objetos, deixando cada classe responsável por uma parte do sistema. Também chamou atenção o uso de List<Jogo> pra gerenciar o catálogo e os métodos AdicionarJogo e RemoverJogo, que deixam o código mais organizado e fácil de manter.

Uma dica interessante para o futuro é utilizar o método Count das listas para saber quantos itens existem no catálogo.


var jogos = new List();

jogos.Add("art of fight 1");
jogos.Add("art of fight 2");

Console.WriteLine(jogos.Count);

Esse código adiciona dois jogos em uma lista e usa Count pra mostrar a quantidade de itens armazenados nela. Isso pode ajudar quando quiser exibir quantos jogos existem no catálogo, por exemplo.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!