Difference between revisions of "Programação com Objectos"

From Wiki**3

m (Exemplos)
Line 132: Line 132:
 
* [[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#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]].
 
* [[PO 2005/06: Exemplos da Aula 09#Vector|Exemplo com vector]].
 +
 +
== Aula 10: Polimorfismo e 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
 +
 +
== Aula 11: Interfaces ==
 +
 +
Revisão dos conceitos subjacentes às classes abstractas e suas propriedades. Interfaces: princípios e propriedades. Comparação entre classes abstractas e interfaces
 +
 +
===Exemplos===
 +
 +
* Exemplos simples em Java e C++ (classes virtuais puras)
 +
* Exemplo completo em Java: Cão, Vigilante, CãoDeGuarda, CãoPastor
  
 
[[category:OOP]]
 
[[category:OOP]]
 
[[category:Aulas]]
 
[[category:Aulas]]

Revision as of 20:38, 4 October 2005

A definição oficial do conteúdo de cada aula pode ser encontrada na página dos sumários mantida pelo Fénix.

Aula 01: Apresentação da Disciplina

Apresentação da disciplina: objectivos gerais; objectivos operacionais; programa; avaliação.

Informação adicional pode ser obtida na página oficial (Fénix).

Aula 02: Introdução

Introdução aos objectos

  • O que é um objecto;
  • Aspectos da captura de características: como capturar a natureza das coisas, tendo em consideração os aspectos de interesse para o fim em causa.

Introdução à programação em Java

Exemplos

Exemplo simples: "Hello world".

Aula 03: Operadores, Expressões e Controlo de Fluxo

Operadores e expressões

  • Apresentação e discussão de operadores, expressões e operações de conversão de tipos primitivos e objectos em Java
  • Aspectos relacionados noutras linguagens (C/C++/Smalltalk)
  • Método equals
  • Casts
  • Restrições às operações sobre booleanos

Exemplos

Controlo de fluxo

Aula 04: Construção de Objectos

Construção e iniciação de objectos

  • Construção e iniciação de objectos em Java;
  • Ordem de iniciação de atributos de classes (static) e de objectos.

A referência this:

  • Uso como auto-referência;
  • Sintaxe especial para chamada a múltiplos construtores.

Overloading

Overloading de métodos.

Exemplos

Exemplos de aplicação. Discussão de aspectos problemáticos e comparação com outras linguagens (PHP e C/C++).

Destruição de objectos

Discussão de aspectos relacionados com a destruição de objectos: o caso do Java (comparação com outras linguagens). Este tópico foi discutido na Aula 06.

Aulas 05 e 06: Organização de Código e Packages

Organização de código

  • Revisão do conceito de tipo de dados abstracto;
  • Organização de código: interface/implementação; separação;

O caso Java

Exemplos

Aulas 07 e 08: Herança e Composição

Herança e composição

  • Diferenças
  • Quando usar cada uma das técnicas
  • Discussão de aspectos relacionados com estes conceitos

Exemplos

Mecanismos do Java

Exemplos

Aula 09: Polimorfismo

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

Aula 10: Polimorfismo e 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

Aula 11: Interfaces

Revisão dos conceitos subjacentes às classes abstractas e suas propriedades. Interfaces: princípios e propriedades. Comparação entre classes abstractas e interfaces

Exemplos

  • Exemplos simples em Java e C++ (classes virtuais puras)
  • Exemplo completo em Java: Cão, Vigilante, CãoDeGuarda, CãoPastor