[RESOLVIDO]palavra chave final

4 respostas
slompo

Recentemente vi algo parecido com o código abaixo e não intendi, se puderem me explicar agradeço :lol:

public void metodoQualquer(final Classe qualquer){
      ...................................
}

Desde já Muito Obrigado a todos :smiley:

4 Respostas

ViniGodoy

Só indica que o parâmetro qualquer não poderá ser alterado.

Ou seja, dentro do método você não pode fazer:

qualquer = new Classe();

Ou

qualquer = null;

Não que qualquer dessas coisas faça a menor diferença pq na prática, com ou sem final, fazer isso também não funciona (mas não dá erro).

M

Quando usado para uma variável, significa que ela não pode mais de uma atribuição. Isso garante que o mesmo objeto será referenciado por uma variável durante todo o trecho. Por exemplo:

final int i = 0;
i = 3; // isso não é permitido devido ao modificador final

Quanto usado em um método, indica que o mesmo não pode ser sobreescrito. Por exemplo:

class A {
	@Override
	public final String toString() {
		return "A";
	}
}
class B extends A {
	@Override
	public String toString() { // isso não é permitido devido ao modificador final
		return "A";
	}
}
slompo

mt bom, obrigado a todos 8)

sergiotaborda

ViniGodoy:
Só indica que o parâmetro qualquer não poderá ser alterado.

Ou seja, dentro do método você não pode fazer:

qualquer = new Classe();

Ou

qualquer = null;

Não que qualquer dessas coisas faça a menor diferença pq na prática, com ou sem final, fazer isso também não funciona (mas não dá erro).

Eu tb pensava assim, tecnicamente o valor do método chamador não pode ser alterado.
O problema é mais de estilo. Se vc alterar a variável , por exemplo , multiplando por 10, e mais à frente vc a usa, qual é o valor que o programador original está pensando que está ali?
O uso de final no argumento serve para proibir o reuso de variáveis e ajudar a impedir erros de codificação.
Claro que isso se resolve naturalmente pelo uso de uma nova variável (que é a boa prática melhor porque o novo valor agora tem um nome)

Criado 14 de janeiro de 2010
Ultima resposta 14 de jan. de 2010
Respostas 4
Participantes 4