(→Exemplos) |
(→Exemplos) |
||
Line 23: | Line 23: | ||
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. | 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. | ||
+ | === Gatos Iteráveis === | ||
O exemplo dos gatos iteráveis mostra como iterar um gato constituído por várias partes. | 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. | Começa-se com uma implementação menos elegante e termina-se com a "melhor" implementação. | ||
Line 28: | Line 29: | ||
* [[Classes Internas (Java)/Gatos Iteráveis|Gatos Iteráveis]] -- como iterar um gato? | * [[Classes Internas (Java)/Gatos Iteráveis|Gatos Iteráveis]] -- como iterar um gato? | ||
+ | === Gato e Estômago === | ||
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. | 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) | * [[Classes Internas (Java)/Gato e Estômago|Gato e Estômago]] -- gatos e estômagos (várias configurações) (exemplo antigo -- ver iteradores acima) | ||
+ | === Comparadores em Java === | ||
+ | Os exemplos seguintes dizem respeito a interfaces Java. | ||
+ | |||
+ | * [[Classes Internas (Java)/Comparações em Java|Comparações em Java]] -- definição de comparadores usando interfaces Java pré-definidas. | ||
+ | |||
+ | === Carros e Motores === | ||
Os exemplos de carros e motores apresentam casos em que existe herança, tanto nas classes externas, como nas classes internas e casos mistos. | 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. | 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 | * [[Classes Internas (Java)/Carros e Motores|Carros e Motores]] -- aspectos e problemas de herança com carros e motores | ||
− | |||
− | |||
− | |||
− | |||
[[Category:Ensino]] | [[Category:Ensino]] |
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.
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.
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.
Os exemplos seguintes dizem respeito a interfaces Java.
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.