|
|
Line 9: |
Line 9: |
| * [[PO 2005/2006: Construção de Objectos|Construção de Objectos]] | | * [[PO 2005/2006: Construção de Objectos|Construção de Objectos]] |
| * [[PO 2005/2006: Organização de Código|Organização de Código]] | | * [[PO 2005/2006: Organização de Código|Organização de Código]] |
| | * [[PO 2005/2006: Herança e Composição|Herança e Composição]] |
| | * [[PO 2005/2006: Polimorfismo|Polimorfismo, Interfaces, Classes Abstractas]] |
| | * [[PO 2005/2006: Classes Internas|Classes Internas]] |
| | * [[PO 2005/2006: Enumerações|Enumerações]] |
| | * [[PO 2005/2006: Excepções|Excepções]] |
|
| |
|
| == Herança e Composição ==
| |
| Material correspondente às Aulas 07 e 08.
| |
|
| |
| ===Herança e composição===
| |
|
| |
| * Diferenças
| |
| * Quando usar cada uma das técnicas
| |
| * Discussão de aspectos relacionados com estes conceitos
| |
|
| |
| ===Exemplos===
| |
|
| |
| * [[PO 2005/06: Exemplos da Aula 07|Classe Gato como subclasse de MamÃfero]]
| |
| * [[PO 2005/06: Exemplos da Aula 07|Composição de um Gato a partir de "peças básicas"]]
| |
|
| |
| ===Mecanismos do Java===
| |
|
| |
| * Chamadas a construtores
| |
| * Ordem de iniciação
| |
| * Controlo de utilização de atributos e métodos
| |
| * A palavra chave [[Palavras chave da linguagem Java#final|final]]
| |
| * Uso de [[Palavras chave da linguagem Java#private|private]], [[Palavras chave da linguagem Java#protected|protected]] e [[Palavras chave da linguagem Java#public|public]]: discussão de aspectos relativos ao uso destas palavras chave
| |
| * Funcionamento das [[As referências this e super (Java)|referências this e super]]
| |
|
| |
| ===Exemplos===
| |
|
| |
| * [[PO 2005/06: Exemplos da Aula 08|Apresentação e discussão de exemplo completo]]: classes <code>Evento</code>, <code>RefeiçãoComSopa</code>, <code>Almoço</code>, <code>Jantar</code>, <code>Sopa</code> e <code>Bolo</code>.
| |
| * Referências [[Palavras chave da linguagem Java#this|this]] e [[Palavras chave da linguagem Java#super|super]]: exemplo prático no contexto da aplicação <code>Evento</code>.
| |
|
| |
| == Polimorfismo ==
| |
| Material correspondente à Aula 09.
| |
|
| |
| ===Tipos===
| |
|
| |
| * Polimorfismo e tipos primitivos
| |
| * Polimorfismo e tipos compostos (classes).
| |
| * Herança e polimorfismo: ''upcasting'' e ''downcasting''.
| |
|
| |
| ===Organização de Código===
| |
|
| |
| * Definição de métodos: ''overloading'' vs. ''overriding''
| |
| * Selecção do método a invocar: ''early binding'' e ''late binding''
| |
|
| |
| ===Exemplos===
| |
|
| |
| * [[PO 2005/06: Exemplos da Aula 09#Hierarquia de Classes|Exemplo simples]]: <code>Animal</code>, <code>MamÃfero</code>, <code>Gato</code>
| |
| * [[PO 2005/06: Exemplos da Aula 09#Vector|Exemplo com vector]].
| |
|
| |
| == Polimorfismo e Classes Abstractas ==
| |
| Material correspondente à Aula 10.
| |
|
| |
| ===Classes Abstractas===
| |
|
| |
| * Noção de classe abstracta
| |
| * Separação de interface e implementação
| |
| * Propriedades
| |
| * Polimorfismo e classes abstractas
| |
| * Discussão de aspectos problemáticos
| |
|
| |
| ===Exemplos===
| |
|
| |
| * Editor gráfico sem classes abstractas
| |
| * Editor gráfico com classes abstractas
| |
|
| |
| == Interfaces ==
| |
| Material correspondente à Aula 11.
| |
|
| |
| ===Interfaces===
| |
|
| |
| * Revisão dos conceitos subjacentes à s classes abstractas e suas propriedades
| |
| * PrincÃpios e propriedades
| |
|
| |
| ===Interfaces em Java===
| |
|
| |
| * [[Classes Abstractas e Interfaces (Java)|Comparação entre classes abstractas e interfaces]]
| |
|
| |
| ===Exemplos===
| |
|
| |
| * [[PO 2005/06: Exemplos da Aula 11|Exemplos simples]] em Java e C++ (classes virtuais puras)
| |
| * [[PO 2005/06: Exemplos da Aula 11#Chihuahua|Exemplo completo em Java]]: <code>Cão</code>, <code>Vigilante</code>, <code>CãoDeGuarda</code>, <code>CãoPastor</code>, <code>Chihuahua</code>, <code>Robot</code>, <code>XP</code>, <code>XP2003</code>
| |
|
| |
| ==Classes Internas==
| |
| Material correspondente às Aulas 12 e 13.
| |
|
| |
| Classes internas em Java.
| |
|
| |
| ===PrincÃpios Básicos===
| |
| * Classes internas e os vários aspectos de definição: classes internas simples; implementação de interfaces
| |
| * Ligação implÃcita entre objectos de classes internas e a instância da classe externa
| |
| * Partilha de acesso entre classe externa e interna
| |
| * Herança e classes internas e externas
| |
|
| |
| ===Organização de código===
| |
| * Sintaxe
| |
| * Organização de interfaces e classes e acesso ao código
| |
| * Classes internas locais (métodos e blocos)
| |
| * Classes anónimas
| |
|
| |
| ===Exemplos===
| |
|
| |
| * [[PO 2005/06: Exemplos da Aula 12|Exemplos de classes internas e externas]]: <code>Gato</code> e <code>Estômago</code>
| |
| * [[PO 2005/06: Exemplos da Aula 13|Exemplos de herança com classes internas e externas]]: <code>Carro</code> e <code>Motor</code>
| |
|
| |
| == Enumerações ==
| |
|
| |
| Material correspondente à Aula 14.
| |
|
| |
| ===Tipos Enumerados===
| |
|
| |
| * [[Tipos enumerados em Java]]
| |
| ** Enumerados como classes de domÃnio finito
| |
| ** Propriedades dos enumerados
| |
| ** Constraste com a definição de enumerações noutras linguagens (C, C++)
| |
|
| |
| ===Exemplos===
| |
|
| |
| * [[PO 2005/06: Exemplos da Aula 14|Exemplos]]: estações do ano, planetas
| |
|
| |
| == Excepções ==
| |
|
| |
| Material correspondente à Aula 15.
| |
|
| |
| ===Introdução à s Excepções===
| |
|
| |
| * Introdução à s excepções
| |
| * Uso do mecanismo de excepções no controlo da execução de programas
| |
|
| |
| ===Excepções em Java===
| |
|
| |
| * Mecanismo de excepções em Java
| |
| * Excepções e erros
| |
| * Classes de suporte à s excepções: <code>Throwable</code>, <code>Exception</code>, <code>Error</code>
| |
| * Tipos de excepções: ''checked exceptions'' (verificadas em tempo de compilação) e excepções durante a execução (<code>RuntimeException</code>).
| |
|
| |
| ===Exemplos===
| |
|
| |
| * [[PO 2005/06: Exemplos da Aula 15|Exemplos simples com excepções]]
| |
| * [[PO 2005/06: Exemplos da Aula 16|Exemplos de múltiplas excepções]]
| |
|
| |
|
| [[category:OOP]] | | [[category:OOP]] |
| [[category:Aulas]] | | [[category:Aulas]] |