Modificadores
- Final
- Abstract
- Synchronized
- Native
- Strictfp
- Lista de Argumentos de Comprimento Variável
Métodos Final
O modificador final é utilizado para que os métodos não sejam sobreescrito por suas subclasses. Quando um método utiliza esse modificador fica assegurado que não será modificado. Seu conteúdo ficará intacto. Deve-se ter cuidado ao utilizar esse modificador, pois ele tira muitas das vantagem que a linguagem OO traz, inclusive o polimorfismo. Um exemplo de um métodos que utiliza o modificador final é o método isAlive() da classe Thread, o modificador foi utilizado para garantir o funcionamento correto do método. Isso ocorre também na classe String que não pode ser extendida, por utilizar do modificador final. Assim garante o comportamento igual de todos os objeto do tipo String.
Argumentos Final
Os argumentos de um métodos são tratados da mesma forma de uma variável local. Ambas podem utilizar do modificador final. Utilizando esse modificador o conteúdo da variável ou do argumento de um método não poderá ser alterado ao longo do método.
Métodos Abstract
Os métodos abastratos são rapidamente identificados pois ao serem declarados, eles não contêm uma implementação e são terminados com ponto e vírgula, e contendo chaves. Uma classe que tenha pelo menos um método abstrato OBRIGATORIAMENTE, será abstrata. Mas, uma classe abstrata poderá conter métodos abstratos e não-abstratos. Esse modificador será utilizado quando for interessante que uma subclasse implemente obrigatoriamente um método de sua superclasse. Por exemplo, se eu tenho uma classe chamada Poligono que contem um método abstrato calculaArea() vou querer que seus filhos, por exemplo quadrado, implemente este método à sua maneira. A regra geral é a primeira subclasse concreta de uma classe abstrata tem que implementar todos os métodos abstratos de todas as superclasses.
É bom lembrar que classes abstratas não podem ser instanciadas. Não pode ser utilziado final com abastract, pois eles são o oposto um do outro. Também não pode ser utilizado o private com o abstract, pois as subclasses devem ter acesso ao método para sobreescrevê-los, colocando como private a subclasse não terá acesso ao método. Veremos depois que também é invalido utilizar o modificador static junto ao abstract.
Métodos Synchronized
Os métodos que utilizam está palavra reservada significa que apenas uma Thread pode percorrê-la por vez. Synchronized pode ser aplicado apenas em métodos, ou seja, não pode ser colocar em variáveis ou classes. É permitido utilizar qualquer um dos quatro modificadores (private, public, protected ou nenhum que é o default) de acesso junto a ele.
Métodos Native
O modificador native signinica que o método foi implementado em uma plataforma dependente como da linguagem C. Para a prova não será necessário saber exatemente como esse modificador funciona. É necessario apenas saber que é um modificador utilizado apenas em métodos e que são terminados com ponto e vírgula, iguais aos métodos abstrato.
Métodos Strictfp
Ao utizilar este modificador estará forçando o método a seguir as regras de ponto flutuante do padrão IEEE 754. Com ele, você poder prever o comportamento dos pontos flutuantes independente da plataforma que a JVM está rodando. O strictfp pode ser utilizado por classes e métodos apenas.
Métodos Lista de Argumentos de Comprimento Variável (var-args)
O java permite que criemos métodos que recebam um variável tamanho de argumentos. Existem algumas regras para as var-args que são:
- O tipo da var-arg: Quando for declarado um método deve-se especificar de que tipo que será os paramentros do método. Podendo ser um tipo primitivo ou até um objeto de um outra classe.
- Sintaxe básica: O paramentro deverá ser declarado da seguinte forma, primeiro três ponto(…), depois um espaço, depois o nome do argumento.
- Outros parametros: poderá ter outros parametros desde que não seja do var-arg.
- Limites do var-arg: O var-arg deverá ser o último paramentro da assinatura do método.
Exemplo de métodos válidos:
void fazerAlgumaCoisa(int… x){}// espera receber de zero a vários valores do tipo int
void fazerAlgumaCoisa1(char c, int… x){}//espera receber primeiro um char depois uma lista de zero ou vários inteiros
void fazerAlgumaCoisa2(Animal… animal){}//aguarda uma lista de nenhum ou vários animais.
Exemplo de métodos inválidos:
void fazerAlgumaCoisa3(int x… ){}// os três pontos deve vir depois do int
void fazerAlgumaCoisa4(int… x, char… y){}//só pode haver um var-arg
void fazerAlgumaCoisa5(String… s, byte b){}// o var-arg deve vim por último
0 respostas Até agora ↓
Ainda não há comentários... chute o balde preenchendo o formulário abaixo.