MAC 413/5715 - Tópicos de Programação Orientada a Objetos
Aula 1 - 25/08/2004
Conteúdo do Curso
- Revisão de conceitos básicos de POO
- padrões de nível baixo (GoF, POSA)
- padrões de análise de software
- Arcabouços
- Objetos Pelados
- Programação Orientada a Aspectos
- Reflexão Computacional
Metodologia de Trabalho
- Aulas expositivas dadas pelo professor
- Seminários apresentados pelos alunos
- Discussão de textos
- Exercícios em sala de aula e no laboratório
- DesignFest (3 aulas)
Conceitos Básicos de Programação Orientada a Objetos
- objetos = estruturas de dados + código
- classes (definem tipos)
- herança
- hierarquia de classes
- herança simples vs. herança múltipla
- classe abstrata vs. classe concreta
- interface
- terminologia
- método, função
- chamada de função, invocação de método,
envio de mensagem
- subclasse, superclasse, mãe/parent, filha, subtipo,
supertipo
- generalização, especialização, especializar = to subclass
- em C++, classe abstrata pura é *quase* uma interface
- polimorfismo: capacidade de uma entidade de assumir múltiplas
formas
- mesmo nome de método mas com assinatura diferente
- implementações diferentes para a mesma interface
- paramétrico
- tipos parametrizados, formas (templates), programação
genérica (generic programming)
- em C++: STL (Standard Template Library)
- em Java: optaram por não colocar por simplicidade
- herança de interface vs. herança de implementaçao
- em Java: implements e extends
- associação, agregação, composição
- delegação (não é sinônimo de agregação)
- sempre podemos escolher entre herança e delegação
- arcabouços (frameworks)
- pontos quentes (hot spots)
- padrões de desenho de software (software design patterns
)
Próxima Aula
Página de MAC 413/5715
Página do Fabio
Página do DCC