|
|
(11 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| {{NAVPO}}
| | #REDIRECT [[ist:Classes Internas (Java)]] |
| <!--{{TOCright}}-->
| |
| | |
| As classes internas em Java são mais que classes definidas dentro de outras classes. A definição destas classes é tal que as suas instâncias têm acesso implícito a instâncias das classes exteriores. Como se verá abaixo esta ligação é muito importante para os aspectos interessantes da programção utilizando este tipo de abstracções.
| |
| | |
| <!-- diagrama da relação UML e instâncias -->
| |
| <!-- exemplo básico -->
| |
| <!-- uso de static e desligar da relação -->
| |
| | |
| ==Aspectos 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==
| |
| | |
| Estes exemplos ilustram o uso de classes internas, evidenciando vantagens relativamente à ocultação de pormenores de implementação e consequente melhoria na abstracção e organização de código.
| |
| | |
| O exemplo dos gatos iteráveis mostra como iterar um gato constituído por várias partes.
| |
| Começa-se com uma implementação menos elegante e termina-se com a "melhor" implementação.
| |
| | |
| * [[Classes Internas (Java)/Gatos Iteráveis|Gatos Iteráveis]] -- como iterar um gato?
| |
| | |
| Os exemplos apresentados nos vários com um gato e um estômago são semelhantes aos anteriores, mostrando como localizar a definição de uma classe interna junto do código onde é utilizada.
| |
| | |
| * [[Classes Internas (Java)/Gato e Estômago|Gato e Estômago]] -- gatos e estômagos (várias configurações) (exemplo antigo -- ver iteradores acima)
| |
| | |
| Os exemplos de carros e motores apresentam casos em que existe herança, tanto nas classes externas, como nas classes internas e casos mistos.
| |
| Note-se que alguns destes casos não são "normais" e apenas se apresentam para evidenciar consequências relativas à programação com classes internas e herança.
| |
| | |
| * [[Classes Internas (Java)/Carros e Motores|Carros e Motores]] -- aspectos e problemas de herança com carros e motores
| |
| | |
| [[Category:Ensino]]
| |
| [[Category:PO]]
| |
| | |
| == Exercícios ==
| |
| | |
| * [[Classes Internas (Java)/Exercício 01: Interfaces java.lang.Comparable e java.util.Comparator|Exercício 01: Interfaces java.lang.Comparable<T> e java.util.Comparator<T>]]
| |
| | |
| [[category:Java]]
| |
| [[category:OOP]]
| |
| [[category:Teaching]]
| |