Line 3: | Line 3: | ||
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. | 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 --> | <!-- diagrama da relação UML e instâncias --> | ||
<!-- exemplo básico --> | <!-- exemplo básico --> |
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 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.