Skip to content

Latest commit

 

History

335 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Repositório de POO

Este repositório é uma coleção de exercícios e projetos relacionados à Programação Orientada a Objetos (POO). Ele é organizado em diferentes seções, cada uma focada em um aspecto específico da POO, como classes, objetos, herança, polimorfismo, entre outros.

Configuração de ambiente

Classes e Objetos

Encapsulamento e Invariantes

Relações entre objetos: agregação e delegação

Aprofundamento

Coleções lineares

Posições fixas e ausência

  • Conceitos abordados neste módulo:

    • vetor de tamanho fixo;
    • índice como informação do domínio;
    • posição ocupada e posição vazia;
    • uso de T | null para representar ausência;
    • busca em vetor com posições vazias;
    • comparação entre ausência por null e objeto vazio.
  • Conceitos principais: posição, ausência, nulidade e busca.

  • @cinema gain=1 hard=1 size=1 type=make eval=test Cinema: posições fixas e ausência

  • @budega gain=2 hard=1 size=1 type=make eval=test Budega: fila e posições fixas

  • @junkfood gain=1 hard=1 size=1 type=make eval=test Junkfood: posições fixas e objeto vazio

Desafio coleções

Mapas e Exceções

  • Conceitos abordados neste módulo:

    • Map<K, V>;
    • chave única;
    • identidade versus posição;
    • acesso eficiente por identificador;
    • inserção duplicada;
    • remoção e busca por chave;
    • escolha entre lista e mapa;
    • manutenção de uma única fonte de verdade.
  • Não é ensinar mapa apenas como nova estrutura, mas discutir:

    • O elemento é localizado por posição, por busca ou por identidade única?
  • Conceitos principais: identidade, chave e, quando houver duplicação real, DRY.

  • @agenda gain=1 hard=1 size=1 type=make eval=test Gerencie os vários contatos de uma agenda

  • @agiota gain=1 hard=1 size=1 type=make eval=test Gerencie os empréstimos do agiota

  • @petshop gain=1 hard=1 size=1 type=make eval=test Meu Petshop

  • @porquinho gain=1 hard=1 size=1 type=make eval=test Guardando moedas e itens em um cofrinho

Índices e Redundância

Neste bloco, você aprenderá a manter diferentes formas de acesso aos mesmos objetos, preservando uma única fonte de verdade e a consistência entre as estruturas.

Polimorfismo

  • Conceitos abordados neste módulo:

    • contrato comum;
    • implementações diferentes;
    • substituição de condicionais por delegação;
    • composição versus herança;
    • tipos abstratos ou interfaces;
    • extensibilidade;
    • substituição segura.
  • Possíveis princípios, apresentados gradualmente:

    • OCP, quando um novo comportamento puder ser adicionado sem alterar a coordenação;
    • LSP, quando houver substituição por subtipos;
    • ISP, apenas quando uma interface estiver grande demais;
    • DIP, quando o domínio precisar deixar de depender de uma implementação concreta.
  • @zoo gain=1 hard=1 size=1 type=make eval=self Sistema de Animais no Zoológico

  • @pagamento gain=1 hard=1 size=1 type=make eval=self Sistema de Pagamentos de um Marketplace

  • @shapes gain=2 hard=1 size=1 type=make eval=test Utilizando interface em círculos e retângulos

  • @estacionamento gain=3 hard=1 size=1 type=make eval=test Cobrando o valor de carros e motos

  • @cofre gain=3 hard=1 size=1 type=make eval=test Seu porquinho cresceu

  • @cadastro gain=3 hard=1 size=1 type=make eval=test Crie as contas poupança e corrente

TODO

labs

About

No description, website, or topics provided.

Resources

Stars

44 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages