30.06.2013 Views

Apostila Java

Apostila Java

Apostila Java

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

TRATAMENTO DE EXCEÇÕ ES<br />

Nessa nova hierarquia, as classes Plana e Espacial também deverão ser abstratas, apesar de serem<br />

subclasses da classe Geometria.<br />

* O aluno deve exercitar bastante a idéia de generalização e especialização proposta pela hierarquia de<br />

classes. Essa é a idéia central do paradigma de Orientação a Objetos e é inspirada no que se acredita<br />

ser a base do pensamento humano.<br />

Restrição de herança pelo modificador final<br />

Nas seções anteriores, vimos o uso do modificador final para definirmos membros variáveis com valores<br />

constantes. Além de definir valores constantes, o modificador final pode ser usado para restringir a<br />

herança de classes e métodos:<br />

/** Classe final – que não pode ser extendida. */<br />

final class Quadrado extends Retângulo<br />

{<br />

// O construtor Quadrado é implicitamente final<br />

Quadrado(double lado)<br />

{<br />

super(lado, lado);<br />

}<br />

}<br />

O exemplo acima define a classe Quadrado como final, ou seja, nenhuma outra classe opderá estender a<br />

classe Quadrado. O construtor da classe não foi implementado com o modificador final. Apesar disso, o<br />

construtor é final porque todos os métodos de uma classe final são implicitamente final. Também<br />

podemos ter métodos final, ou seja, uma classe normal possuir um dos seus métodos modificados como<br />

final. Nesse caso, essa classe pode ser estendida, mas a subclasse não poderá sobrecarregar esse<br />

método final.<br />

As referências this e super<br />

Até aqui acessamos objetos através de referências explicitamente criadas no código dos programas.<br />

Entretanto, quando um objeto é instanciado na memória, são criadas duas referências implícitas: super e<br />

this. A referência super diz respeito à superclasse de um objeto e a referência this referencia o próprio<br />

objeto.<br />

Para referenciarmos a superclasse de um objeto usamos a palavra reservada super. Note no exemplo<br />

anterior, que o construtor da classe Quadrado chama um método super(lado, lado);. Isso significa que o<br />

construtor da classe Quadrado está chamando o construtor de sua superclasse Retângulo, e passando<br />

os argumentos exigidos por esse construtor.<br />

Outro exemplo de utilização da referência super é com o operador ponto:<br />

/** Classe final – que não pode ser extendida. */<br />

final class Quadrado extends Retângulo<br />

70

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!