| args |
|
|||
|---|---|---|---|---|
| expr | (g * l * s) |
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.
-
eval=none[INTRO] Marcadores pedagógicos -
eval=none g=1 l=1 s=1[INTRO] Competências trabalhadas -
eval=none g=1 l=1 s=1[INTRO] Trabalhos futuros -
eval=none g=1 l=1 s=1[INTRO] Introdução ao git -
eval=none g=1 l=1 s=1[INTRO] Relacionamentos -
eval=none g=1 l=1 s=1[INTRO] Relacionamentos Resumo -
eval=none g=1 l=1 s=1[INTRO] Como fazer os códigos e relatórios -
eval=none g=1 l=1 s=1[INTRO] Padrão para atividades de código -
eval=none g=1 l=1 s=1[INTRO] Criando a Main
-
eval=none g=1 l=1 s=1[INTRO] Introdução Classes e Objetos -
eval=self g=2 l=1 s=1[GUIDE] Toalha que enxuga -
eval=diff g=2 l=1 s=1[GUIDE] Animal que morre -
eval=diff g=2 l=1 s=1[TRAIN] Enxugar: Toalha com testes -
eval=diff g=3 l=2 s=1[ALONE] Carro dirigível -
eval=diff g=3 l=2 s=2[CHECK] Calculadora à bateria
| Projetos | toalha | animal | enxugar | carro | calculadora |
|---|---|---|---|---|---|
| ciclo de vida | . | SIM | . | . | . |
| early return | . | . | . | SIM | SIM |
| testes automáticos | . | . | SIM | SIM | SIM |
| erros comunicados via | bool | bool | bool | enum | enum |
| esforço | mínima | baixo | baixo | médio | médio |
-
eval=none g=1 l=1 s=1[INTRO] Introdução Encapsulamento e Invariantes -
eval=self g=1 l=1 s=1[GUIDE] Chinela de números pares -
eval=self g=1 l=1 s=2[TRAIN] Camisa de tamanho fixo -
eval=diff g=2 l=1 s=2[TRAIN] Roupa: camisa com testes -
eval=diff g=3 l=2 s=2[ALONE] Hora 24h ou AM/PM
| Projetos | chinela | camisa | roupa | relógio |
|---|---|---|---|---|
| validação de construtor | . | SIM | SIM | SIM |
| uso de arrays internos | - | SIM | SIM | . |
| testes automáticos | . | SIM | SIM | SIM |
| erros comunicados por | bool | bool | bool | bool |
| esforço | mínima | baixo | baixo | médio |
-
eval=none g=1 l=1 s=1[INTRO] Introdução Agregação e Delegação -
eval=diff g=3 l=2 s=3[GUIDE] Criança andando de Motoca -
eval=diff g=3 l=3 s=3[TRAIN] Lapiseira de um Grafite -
eval=diff g=3 l=4 s=3[ALONE] Passeando e pagando o MotoUber
| Projetos | motoca | grafite | motouber |
|---|---|---|---|
| agregação nullable | SIM | SIM | SIM |
| objeto removido devolvido | SIM | SIM | SIM |
| regra delegada | SIM | SIM | SIM |
| testes automáticos | SIM | SIM | SIM |
| erros comunicados por | enum/null | enum/null | enum/null |
| esforço | baixo | médio | médio-alto |
-
eval=none[INTRO] Desafios de agregação e estados -
eval=diff g=1 l=1 s=1[CHECK] Brinque até matar o Tamagotchi -
eval=diff g=1 l=1 s=1[TRAIN] Notebook com bateria e carregador
| Projetos | tamagotchi | charger |
|---|---|---|
| agregação de componente externo | SIM | SIM |
| invariantes no componente | SIM | SIM |
| coordenação de estados | SIM | SIM |
| transição terminal | SIM | . |
| testes automáticos | SIM | SIM |
| erros comunicados por | enum | enum/null |
| esforço | médio-alto | alto |
-
eval=none[INTRO] Introdução Coleções lineares -
eval=none[GUIDE] Listas em Python -
eval=diff g=2 l=1 s=1[GUIDE] Coleção de pessoas -
eval=diff g=2 l=1 s=2[TRAIN] Contato com telefones -
eval=diff g=1 l=1 s=1[TRAIN] Pula-pula com crianças -
eval=diff g=1 l=1 s=1[ALONE] Lapiseira com tambor de grafites
| Projetos | listas | array | contato | pula-pula | lapiseira |
|---|---|---|---|---|---|
| relação entre objetos | . | . | composição | agregação | agregação |
| busca ou filtro | SIM | SIM | . | SIM | . |
| ordem como regra | SIM | SIM | SIM | SIM | SIM |
| coleção encapsulada | . | . | SIM | SIM | SIM |
| movimento entre coleções | . | . | . | SIM | SIM |
| testes automáticos | . | SIM | SIM | SIM | SIM |
| erros comunicados por | . | . | bool | bool/null | enum/null |
| esforço | mínima | baixo | médio | médio | médio |
-
eval=none[INTRO] Introdução Posições fixas e ausência -
eval=diff g=1 l=1 s=1[GUIDE] Cinema: posições fixas e ausência -
eval=diff g=2 l=1 s=1[TRAIN] Budega: fila e posições fixas
| Projetos | cinema | budega |
|---|---|---|
| erros comunicados por | bool | bool |
| capacidade fixa | SIM | SIM |
| tipo de ausência | null | null |
| fila variável | . | SIM |
| validação de índice | SIM | SIM |
| testes automáticos | SIM | SIM |
| esforço | baixo | médio |
-
eval=none[INTRO] Exceções -
eval=diff g=3 l=1 s=1[TRAIN] Bermuda: exceções para invariantes de tamanho -
eval=diff g=2 l=1 s=2[TRAIN] Birita: fila, caixas e exceções -
eval=diff g=1 l=1 s=1[ALONE] Junkfood: exceções e objeto vazio -
eval=diff g=3 l=2 s=1[TRAIN] Fusca: posições, exceções e direção -
eval=diff g=1 l=1 s=1[TRAIN] Guardando moedas e itens em um cofrinho -
eval=diff g=1 l=1 s=1[CHECK] Tabuleiro: coleções na simulação de turnos
- 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.
-
eval=diff g=3 l=2 s=1Agenda: contatos por identidade em um mapa -
eval=diff g=1 l=1 s=1[TRAIN] Agiota: clientes identificados por codenome -
eval=diff g=1 l=1 s=1Meu Petshop
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.
-
eval=diff g=1 l=1 s=1[TRAIN] Favoritos: índice secundário e consistência -
eval=diff g=1 l=1 s=1[TRAIN] Ligação: composição para histórico e ranking
- 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.
-
eval=self g=1 l=1 s=1[ALONE] Zoo: contrato comum e comportamento polimórfico -
eval=self g=1 l=1 s=1[TRAIN] Pagamento: composição de métodos de pagamento -
eval=diff g=2 l=1 s=1[TRAIN] Shapes: interface e substituição geométrica -
eval=self g=3 l=1 s=1Estacionamento — polimorfismo por tipo de veículo -
eval=diff g=3 l=1 s=1Cofre — polimorfismo por contrato de valor -
eval=diff g=3 l=1 s=1Cadastro — contas com regras polimórficas
-
eval=diff g=1 l=1 s=1Twitter — colaboração entre usuários e timelines -
eval=diff g=1 l=1 s=1Salário — regras de cálculo polimórficas -
eval=diff g=2 l=1 s=1Mensagem — inbox e leitura destrutiva -
eval=self g=1 l=1 s=1Comunicador — envio autorizado por composição -
eval=self g=2 l=1 s=1Paciente — vínculos bidirecionais no hospital -
eval=diff g=3 l=1 s=1WhatsApp — grupos e estado de leitura por participante -
eval=self g=3 l=1 s=1Grupo — contrato comum para chats -
eval=self g=1 l=1 s=1Vetores — coleção linear e índices -
eval=self g=2 l=1 s=1Anotações — sessão e notas privadas -
eval=self g=1 l=1 s=1Trem — composição e alocação de passageiros -
eval=self g=1 l=1 s=1Produto — Composite e Decorator -
eval=none g=1 l=1 s=1Git — fluxo de trabalho e recuperação -
eval=diff g=3 l=1 s=1Operações de saque, depósito, extrato
-
eval=nonePesquisa sobre C++ -
eval=noneNÃO TEM TÍTULO