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

From Wiki**3

(Aula 04: Construção de Objectos)
(Aulas 05 e 06: Organização de Código e ''Packages'')
Line 49: Line 49:
 
== Aulas 05 e 06: Organização de Código e ''Packages'' ==
 
== Aulas 05 e 06: Organização de Código e ''Packages'' ==
  
Revisão do conceito de tipo de dados abstracto. Organização de código: interface/implementação; separação. ''Packages''. Bibliotecas. Localização de classes: <code>CLASSPATH</code>. Controlo de acesso: <code>public</code>, <code>protected</code>, <code>private</code>, ''"package"''. [[PO 2005/06: Exemplos da Aula 05|Exemplos de código]]. [[Comparação de Linguagens de Programação|Comparação com outras linguagens]].
+
===Organização de código===
  
Organização de código em ''packages''. [[PO 2005/06: Exemplos da Aula 06|Exemplo completo]]. Discussão de aspectos relacionados com a destruição de objectos: o caso do Java ([[Comparação de Linguagens de Programação|comparação com outras linguagens]]).
+
* Revisão do conceito de tipo de dados abstracto;
 +
* Organização de código: interface/implementação; separação;
 +
 
 +
===O caso Java===
 +
* ''Packages'' e bibliotecas;
 +
* Localização de classes: <code>CLASSPATH</code>.
 +
* Controlo de acesso: <code>public</code>, <code>protected</code>, <code>private</code>, ''"package"''.
 +
* [[Comparação de Linguagens de Programação|Comparação com outras linguagens]].
 +
 
 +
===Exemplos===
 +
 
 +
* [[PO 2005/06: Exemplos da Aula 05|Exemplos de código]];
 +
* [[PO 2005/06: Exemplos da Aula 06|Exemplo completo]].
  
 
== Aulas 07 e 08: Herança e Composição ==
 
== Aulas 07 e 08: Herança e Composição ==

Revision as of 00:35, 28 September 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, Expressões e Controlo de Fluxo. 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 de aplicações simples: atribuição; comparador; conversão para Strings.

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++).

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. Discussão de aspectos relacionados com a modelação utilizando estes conceitos. Exemplos simples: classe Gato como subclasse de Mamífero; composição de um Gato a partir de "peças básicas".

Mecanismos para controlo de utilização de atributos e métodos. A palavra chave final (Java). Uso de private, protected e public (Java). Discussão de aspectos relativos ao uso destas palavras chave. Apresentação e discussão de exemplo completo: classes Evento, RefeiçãoComSopa, Almoço, Jantar, Sopa e Bolo. Discussão sobre o funcionamento das referências this e super. Exemplo prático no contexto da aplicação Evento.