Objetos, classes, métodos, atributos, mensagens, aspectos de
análise orientada a objetos,
criação e remoção de objetos, tipos primitivos,
estruturas de controle, operadores especiais.
Classificação, herança simples e múltipla,
polimorfismo, `overriding', `dynamic binding', impacto sobre
sistema de tipos (conflitos e anomalias), herança versus
encapsulamento, herança baseada em comportamento,
classes abstratas, `casts'.
Programação parametrizada, desenvolvimento de software
baseado em componentes, impacto sobre reusabilidade,
Java com parametrização, herança versus
parametrização.
Desenvolvimento rigoroso de software, impacto sobre
confiabilidade, especificações como contratos,
documentação, asserções, pré e pós
condições, invariantes, tratamento de exceções.
Reusando classes da biblioteca, elementos de GUI, manipulação de arquivos, persistência, trabalhando com URLs, CGI, desenvolvimento de Applets, appletviewer.