Operador final

6 respostas
G

Olá pessoal sou iniciante na linguagem Java, acabei de me cadastrar no GUJ. E aí vai minha primeira dúvida…
(primeira de muitas que irão surgir…rs)

O que faz o operador “final” na definição de classes, métodos e atributos??
Como ele funciona??
por exemplo:

public final class Teste{}

public final void teste();

private final int teste=0;

valeu pessoal…obrigado pela atenção…

6 Respostas

D

significa que não podera ser alterada… por exemplo:
qdo eu tenho

isso quer dizer q a minha variavel sera constante, ou seja não irei alterala… ja qdo eu tenho uma classe final… significa q ela não pode ser herdada… por exemplo a classe String é final… pq naum tem mais implementação pra ela, se vc achar alguma pode mandar seu curriculo pra sun!!! blzinha???
flw!!! :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

L

Na verdade, o significado de final varia de contexto para contexto, mas a idéia principal é que recursos final não pode ser alterados :stuck_out_tongue:

Uma classe final não pode ser transformada em subclasse.
Uma variável final não pode ser modificada quando a ela tiver sido atribuído um valor.
Um método final não pode ser sobrescrito

P

Na verdade, é para que ninguém possar formar uma subclasse a partir da sua classe.

Hum, ‘não pode ser modificada depois de ter sido atribuída’ não é bemm assim. O objetivo de uma ‘variável’ final, garante que após a instanciação do objeto, ela não será modificada.

K

Leozin:
Uma variável final não pode ser modificada quando a ela tiver sido atribuído um valor.
Isso depende do tipo de variável.
Se for uma variavel primitiva (int, double, float, char, etc…) você não consegue alterar.
mas se for uma referência a um objeto você até consegue alterar o valor, mas não a sua referencia.
Exemplo:

private final Data d = new Date();

private void alteraData(){
 // não me lembro qual o método real, mas use os métodos verdadeiros para fazer este exemplo.
 System.out.println(d.getHours());
 d.setHours(20);
 System.out.println(d.getHours());
}

Ou seja, o valor que a variavel se referencia pode ser alterada, mas a referência não. logo:

private final Data d = new Date();

private void alteraData(){
 d = new Date() // Errooo!!!
}
J

final aplicado em classes significa de uma maneira resumida que você não poderá mais “melhor” tal classe, ou seja extender suas funcionalidades. Também é aplicado em classes por motivo de segurança, imagine alguém criando uma subclasse de String e alterando seu comportamento drasticamente, o mundo nunca mais seria o mesmo :XD: .
O final aplicado em métodos significa que o método não poderá ser sobreposto.
E finalmente final aplicado em variáveis quer dizer que uma vez sua variável tenha um valor atribuido a ela, este valor não poderá mais ser alterado.
:mrgreen: []´s

G

Obrigado pessoal…agora ficou claro pra min o uso do operador final…
até a próxima…

valeu mesmo…

Criado 11 de agosto de 2005
Ultima resposta 12 de ago. de 2005
Respostas 6
Participantes 6