2
  1. Classes e Objetos:
    • Crie uma classe "Carro" com atributos como marca, modelo e ano. ✔️
    • Instancie objetos dessa classe e acesse seus atributos. ✔️
  2. Encapsulamento:
    • Modifique a classe "Carro" para tornar alguns de seus atributos privados.
    • Crie métodos "get" e "set" para acessá-los.
  3. Herança:
    • Crie uma classe "Veiculo" com atributos comuns a carros e motos.
    • Em seguida, crie subclasses "Carro" e "Moto" que herdam da classe "Veiculo."
  4. Polimorfismo:
    • Crie um método chamado "descrever" na classe "Veiculo."
    • Sobrescreva-o nas subclasses "Carro" e "Moto" para fornecer descrições específicas.
  5. Abstração:
    • Crie uma classe abstrata "Animal" com um método abstrato "emitir_som."
    • Crie subclasses como "Cachorro" e "Gato" e implemente o método abstrato.
  6. Composição:
    • Crie uma classe "Círculo" com um atributo "Ponto" que representa o centro do círculo.
    • Use a composição para criar um círculo.
  7. Agregação:
    • Crie uma classe "Biblioteca" que possui uma lista de objetos "Livro."
    • Demonstre uma relação de agregação entre a biblioteca e os livros.
  8. Métodos Mágicos:
    • Crie uma classe "Complexo" que representa números complexos.
    • Implemente métodos mágicos como __add__, __sub__ e __str__.
  9. Anotações de Tipo:
    • Adicione anotações de tipo às funções e métodos da classe "Pessoa" que indicam os tipos dos parâmetros e retornos.
  10. Herança Múltipla e Mixins:
    • Crie uma classe "Trabalhador" com um mixin "Habilidade" que adiciona habilidades a um trabalhador.
  11. Módulos e Pacotes:
    • Organize suas classes "Veiculo" e "Animal" em módulos separados.
    • Importe-os em um arquivo principal.
  12. Design Patterns:
    • Implemente o padrão de design Singleton em uma classe que represente uma configuração de aplicativo.
  13. Exceções:
    • Adicione tratamento de exceções a uma classe "Divisão" que faz a divisão de dois números.
    • Lide com a exceção de divisão por zero.
  14. Projetos que Englobam Todos os Tópicos:
    • Sistema de Registro de Veículos:
    • Crie um sistema que permita registrar carros e motos. Use herança, encapsulamento e polimorfismo para representar diferentes tipos de veículos.
    • Zoológico Virtual:
    • Desenvolva um programa que simule um zoológico virtual com vários tipos de animais. Use abstração e polimorfismo para representar os animais.
    • Sistema de Biblioteca:
    • Crie um sistema de biblioteca que permita registrar livros, autores e bibliotecários.
    • Use encapsulamento, composição e agregação para modelar a biblioteca.