Programação com Objectos: Difference between revisions

From Wiki**3

No edit summary
(Redirected page to ist:Programação com Objectos)
 
(207 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOCright}}
#REDIRECT [[ist:Programação com Objectos]]
<!-- __NOEDITSECTION__ -->
 
A definição oficial do conteúdo de cada aula pode ser encontrada na [https://fenix.ist.utl.pt/publico/viewSite.do?method=summaries&objectCode=8711&executionPeriodOID=83 página dos sumários] mantida pelo Fénix.
 
* [[PO 2005/2006: Apresentação da disciplina|Apresentação da disciplina]]
* [[PO 2005/2006: Introdução|Introdução]]
* [[PO 2005/2006: Operadores, Expressões e Controlo de Fluxo|Operadores, Expressões e Controlo de Fluxo]]
* [[PO 2005/2006: Construção de Objectos|Construção de Objectos]]
* [[PO 2005/2006: Organização de Código|Organização de Código]]
 
== 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:Aulas]]

Latest revision as of 17:30, 7 November 2018