Difference between revisions of "Herança e Composição"

From Wiki**3

 
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
Material correspondente às Aulas 07 e 08.
+
{{NAVPO}}
 
+
{{TOCright}}
==Herança e composição==
+
* Diferenças:
 
+
** Herança: '''is-a'''
* Diferenças
+
** Composição: '''has-a'''
 
* Quando usar cada uma das técnicas
 
* Quando usar cada uma das técnicas
* Discussão de aspectos relacionados com estes conceitos
+
* Discussão de aspectos relacionados com estes conceitos: flexibilidade
 
 
==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==
 
==Mecanismos do Java==
Line 17: Line 12:
 
* Ordem de iniciação
 
* Ordem de iniciação
 
* Controlo de utilização de atributos e métodos
 
* Controlo de utilização de atributos e métodos
* A palavra chave [[Palavras chave da linguagem Java#final|final]]
+
* Uso da palavra chave '''final''' na definição de classes
* 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
+
* Uso de '''private''', '''protected''' e '''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]]
+
* Funcionamento das referências '''this''' e '''super'''
  
==Exemplos==
+
== Exemplos ==
 +
* [[Herança e Composição/Definição Simples de Superclasse e Subclasse|Definição Simples de Superclasse e Subclasse]]
 +
* [[Herança e Composição/Modelação de Evento com Refeições com Sopa|Modelação de Evento com Refeições com Sopa]]
 +
* [[Herança e Composição/Aplicação Simples com Animais (não específicos) e Gatos|Aplicação Simples com Animais (não específicos) e Gatos]]
  
* [[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>.
+
== Exercícios ==
* 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>.
+
* [[Herança e Composição/Exercício 01: Porta AND Binária|Exercício 01: Porta AND Binária]]
 +
* [[Herança e Composição/Exercício 02: Porta AND Ternária|Exercício 02: Porta AND Ternária]]
 +
* [[Herança e Composição/Exercício 03: Energia|Exercício 03: Energia]]
 +
* [[Herança e Composição/Exercício 04: Arabian Nights in Java|Exercício 04: Arabian Nights in Java]]
 +
* [[Herança e Composição/Exercício 05: Animal, Cão, Gato|Exercício 05: Animal, Cão, Gato]]
  
[[category:PO 2005/2006]]
+
[[category:Ensino]]
 +
[[category:PO]]

Latest revision as of 14:00, 19 November 2015

Programação com Objectos
Introduction
Creation and Destruction
Inheritance & Composition
Abstraction & Polymorphism
Code Organization
Java Topics
Inner Classes
Enumerations
Data Structures
Exceptions
Input/Output
RTTI
Other Topics
JUnit Tests
UML Topics
Design Patterns
"Simple" Factory
Composite & Visitor
Command
Strategy & State
Template Method
Observer
Abstract Factory
Decorator & Adapter
Façade (aka Facade)
  • Diferenças:
    • Herança: is-a
    • Composição: has-a
  • Quando usar cada uma das técnicas
  • Discussão de aspectos relacionados com estes conceitos: flexibilidade

Mecanismos do Java

  • Chamadas a construtores
  • Ordem de iniciação
  • Controlo de utilização de atributos e métodos
  • Uso da palavra chave final na definição de classes
  • Uso de private, protected e public -- discussão de aspectos relativos ao uso destas palavras chave
  • Funcionamento das referências this e super

Exemplos

Exercícios