Classe Interna

3 respostas
_
Alguém pode explicar este código:
class Teste
{
	public static void main( String args[] )
	{
		class ma
		{
			final int x;		
			ma ()
			{
				x = 10;
				System.out.println( this.x);
			}
		}
		new ma();

	}
}

Ele gera 10 na saída.

3 Respostas

S

Nesse código é usada uma inner class (ma) …uma inner class é uma classe definida dentro de outra, isto é, num só ficheiro podes ter mais do que uma classe desde que não sejam publicas(apenas a principal pode ser). Então, ele cria uma classe interna dentro do método main(), depois nota-se ali o construtor da classe ma, que define x como 10 e manda imprimir no ecrã o valor de x. E é isso que faz o “new ma();” que é a a instanciação anónima da classe ma.

_

Ainda to meio confuso porque pra mim a variável final deve ser declarada e instanciada em uma única linha e não pode ser modificada.

L

O valor do atributo deve ser atributo antes que uma instancia da classe seja criada (para atributos de instancia como esse ai), e para isso vc pode fazer na mesma linha ou dentro do construtor do objeto.

Criado 7 de junho de 2007
Ultima resposta 8 de jun. de 2007
Respostas 3
Participantes 3