[SCJP] Dúvida com relação ao modificador "private final"

7 respostas
G

Olá amigos, vi em um teste do livro da katty uma classe com um método com esses modificadores:

Pra mim, ao inserir o modificador final em um método, você está impedindo que ele seja sobrescrito, e a sobrescrita só ocorre na herança, certo?
Então qual seria a utilizade de um modificador “private final”?

Grato.

7 Respostas

danieldomingues86

Olá,

Cara… por questões de acesso…

Por exemplo um método private final , como voce disse não pode ser sobreescrito E só pode ser acessado dentro do mesmo objeto.

Já um método public final, não pode ser sobreescrito mas pode ser acessado por outros objetos.

Abraços.

G

mas se ele já e private, não tem necessidade de ser final…
Entendeu?

Jairo_Junior1

Todo método privado é implicitamente final.

danieldomingues86

Sim. Concordo. Se o modificador já é private voce não vai conseguir acessa-lo de fora , quanto muito menos então sobreescreve-lo.

Apenas estou mostrando a diferença de acesso no exemplo que citei.

Abraços.

G

Legal!
Outro dia achei uma coisa parecida tb…

Em uma classe abstract:
Construtores protected tem a mesma visibilidade de construtores public

Abs.

luiz_renato

Caros colegas,

Sobre a questão private final , acho que seria útil somente em casos de se evitar que uma classe interna tente extender um método da classe “outter” .

Luiz Renato

G

Tb não ocorre, se a classe externa "Outter" tiver um método private e a classe interna declarar um método com os mesmos parâmetros, ocorrerá uma reescrita do método.
...

Olhe o que eu descobri tb:

A classe interna pode somente acessar um método private dentro do seu próprio corpo, através de uma instância isso não é viável:

class Externa {
	private void meuMetodo() {
	}

	class Interna {
		Interna() {
			meuMetodo(); // <= aqui o acesso é possível
		}
	}
}

O acesso descrito acima é viável, porém:

Externa.Interna interna1 = new Externa.new Interna();
interna1.meuMetodo(); // não é válido!

Abs.

Criado 13 de junho de 2010
Ultima resposta 14 de jun. de 2010
Respostas 7
Participantes 4