Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio: hora da prática

Desenvolver uma classe que representa um catálogo de jogos, com uma lista de Jogos e métodos para manipular essa lista, bem como um construtor que faça sua inicialização.

public class Jogo
{
    public string Nome { get; }
    public int AnoLancamento { get; }
    public string Plataforma { get; }

    public Jogo (string nome, int anoLancamento, string plataforma)
    {
        Nome = nome;
        AnoLancamento = anoLancamento;
        Plataforma = plataforma;
    }
}
public class Catalogo
{
    private List<Jogo> Jogos {  get; }
    public Catalogo()
    {
        Jogos = new List<Jogo>();
    }

    public void AdicionarJogo(string nome, int ano, string plataforma)
    {
        Jogo novojogo = new Jogo(nome, ano, plataforma);
        Jogos.Add(novojogo);
        Console.WriteLine($"Jogo \"{nome}\" adicionado ao catálogo.");
    }

    public void ListarJogos()
    {
        Console.Clear();
        if (Jogos.Count == 0)
        {
            Console.WriteLine("Catálogo de Jogos está vazio.");
        }
        else
        {
            Console.WriteLine("Lista de Jogos: ");
            foreach (Jogo jogo in Jogos)
            {
                Console.WriteLine($" - {jogo.Nome}");
            }
        }

    }
}
Catalogo catalogo = new Catalogo();
catalogo.AdicionarJogo("Red Dead", 2022, "Playstation 5");
catalogo.AdicionarJogo("Donkey Kong", 1988, "Super Nintendo");
catalogo.ListarJogos();
1 resposta

Oi, Leonardo. Tudo bem?

Seu exercício ficou bem alinhado com a proposta de trabalhar construtores e orientação a objetos. A classe Jogo possui um construtor que recebe nome, anoLancamento e plataforma, inicializando corretamente as propriedades. Na classe Catalogo, o construtor também cumpre seu papel ao criar a lista de jogos com new List<Jogo>(), evitando que ela fique nula quando um objeto Catalogo for instanciado.

Também foi uma boa escolha deixar as propriedades de Jogo somente com get, já que os valores são definidos pelo construtor e não precisam ser alterados posteriormente.

Que outras informações você adicionaria ao catálogo para deixá-lo mais completo, como gênero, desenvolvedora ou avaliação?

Parabéns pelo exercício, Leonardo. Continue praticando e compartilhando seus projetos no fórum, que estamos à disposição para acompanhar sua evolução.

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