Cursos / Informática para Internet / Programação Orientada a Objetos / Aula
Os conceitos de encapsulamento e herança são relacionados e se entrelaçam. Vimos anteriormente que cada classe define seus atributos, vimos também a forma de acesso a eles, de forma a preservar a segurança dos dados (atributos) com relação a alterações acidentais ou não desejadas.
Uma das formas de controlar tal acesso é simplesmente impossibilitar que código externo possa acessá-la. Isso é o que chamamos de encapsulamento. Você viu também que uma classe pode possuir outras classes descendentes, nesse caso, herdam seus respectivos atributos e comportamentos. Isso é o que chamamos herança. Veja os pilares da programação orientada a objetos.
Um dos pontos que não discutimos em aulas anteriores diz respeito à forma de acesso (visibilidade) dos atributos de classes filhas. Voltemos a esse ponto.
Considere uma classe mãe (Listagem1) com os seguintes atributos: idade, nome, sobrenome materno e sobrenome paterno. E uma classe filha, chamada Filha (Listagem 2), em que iremos experimentar os modificadores de acesso diante da estrutura hierárquica definida entre essas classes.
Listagem 1 - Classe MãeObserve que a classe Filha herda todos os atributos de sua Mãe, porém, o atributo sobrenomeMaterno não pode ser acessado diretamente de dentro da classe Filha por ser do tipo private. Logo, a linha comentada representa um erro para o compilador Java.
Os demais atributos são do tipo protected e public. Atributos public podem ser acessados de qualquer lugar no programa e representam o extremo do acesso livre em Java. Atributos protected são aqueles que podem ser acessados apenas pelas subclasses da classe que declara tais atributos.
Os atributos public e protected são sempre visíveis em classes filhas.
Os atributos private não. Porém, eles estão lá! Não se esqueça, o fato de não estar visível não significa não existir. Pois, podemos modificá-los através dos construtores da classe mãe (fazendo chamadas com o super), assim como usando os métodos get e set definidos na classe mãe.
Lembre-se:
A classe filha sempre herda as características da mãe, mas só pode ver o que a mamãe deixa ;-).
Os exemplos que vimos sobre herança e encapsulamento demonstraram sua utilização através de atributos, porém, tudo que vimos se aplica exatamente da mesma maneira com os métodos.
Para praticar, que tal fazermos um exercício?
Versão 5.3 - Todos os Direitos reservados