Aula 1 - Orientação a objetos

Um objeto é um componente de software - uma parte de um sistema que exibe, ou deveria exibir, certas características específicas. Nessa aula vamos ver algumas dessas características
  1. Comportamento e estado
  2. Instâncias e classes
  3. Acoplamento e coesão
  4. Interfaces e implementações

Exemplo: a cozinha inteligente de Torsten

Eu gostaria de um sistema que soubesse que ingredientes eu tenho em casa (na despensa e geladeira) e que guardasse minhas receitas favoritas. Ele me permitiria fazer três consultas: descobrir se tenho em casa os ingredientes necessários para preparar uma receita, descobrir que receitas posso preparar com os ingredientes que tenho em casa, e descobrir que receitas posso preparar com um conjunto específico de ingredientes.

Exercício 1: Projeto da cozinha inteligente

Desenhar um diagrama de classes que mostre as classes do sistema, seus dados, métodos e relacionamentos entre classes. Deve ser possível inferir do diagrama como serão respondidas as três consultas acima.

(Próxima aula)