Classe interna em Java | Explicado

Classe interna em Java | Explicado

O Java fornece um recurso que nos permite criar uma classe dentro de outra classe conhecida como classe aninhada ou classe interna e a classe que possui a classe interna é referida como uma classe externa. A classe interna pode ser especificada da mesma maneira que especificamos qualquer outro atributo ou método.

Em Java, não podemos declarar/criar uma classe com um modificador de acesso privado para que a classe possa ser acessada por qualquer outra classe de dentro ou fora da embalagem. No entanto, para fornecer segurança, precisamos criar aulas particulares e, para isso, podemos criar classes internas com privado Modificadores de acesso.

Este artigo fornecerá um guia abrangente para aulas internas em Java e, a esse respeito, precisamos entender os seguintes conceitos:

  • O que é a classe interna em Java
  • Sintaxe básica da classe interna em Java
  • Como criar e acessar a classe interna em Java
  • Como acessar atributos/métodos da classe externa
  • Classe Interior Privada em Java
  • Classe interna estática em java

Vamos começar!

O que é a classe interna em Java

Uma classe declarada/criada em alguma outra classe é conhecida como uma classe interna. Ele pode acessar todos os atributos de classe e funções membros da classe externa. As principais características das classes internas incluem segurança aprimorada, legibilidade de código e manutenção.

Sintaxe

A sintaxe básica da classe interna é descrita no snippet abaixo:

classe Exterterclass
//Declarações
classe Innerclass
//Declarações

Como criar e acessar a classe interna em Java

A criação da classe interna é muito simples, tudo o que precisamos fazer é criar uma classe dentro de uma classe. Para acessar a classe interna, primeiro, temos que criar uma instância/objeto da classe externa e depois, podemos criar o objeto da classe interna/aninhada.

Exemplo

O trecho acima mostra como uma classe interna funciona em java.

Como acessar atributos/métodos da classe externa

A classe interna pode acessar os atributos da classe ou funções de membro da classe externa, o exemplo a seguir fornecerá um melhor entendimento:

Exemplo

O snippet de código abaixo do rumo acessar o nome1 atributo da classe externa da classe interna:

classe externa
String name1 = "John";
classe interna
public string name ()
Nome de retorno1;



classe pública mainClass
public static void main (string [] args)
Externo obj1 = new Outer ();
Exterior.Interno obj2 = obj1.novo interno ();
Sistema.fora.println (obj2.nome());

O código completo e sua saída são mostrados no snippet abaixo:

A saída autentica que a classe interna acessa com sucesso o atributo de classe da classe externa.

Classe Interior Privada em Java

Em Java, uma aula regular não pode ser criada com o privado O modificador de acesso, no entanto, uma classe interna pode ser criada com o acesso privado e os objetos fora da classe não podem acessar a classe interna privada.

Exemplo

Se alguém tentar acessar a classe interna privada, Java apresentará um erro:

classe externa
String name1 = "John";
classe privada interna
Nome da sequência2 = "Micheal";


classe pública mainClass
public static void main (string [] args)
Externo obj1 = new Outer ();
Exterior.Interno obj2 = obj1.novo interno ();
Sistema.fora.println (obj2.nome2 + "" + obj1.nome1);

Todo o código é o mesmo, exceto o modificador de acesso a classe interna:

O trecho acima verifica se uma classe externa não pode acessar a classe interna.

Classe interna estática em java

Uma classe interna também pode ser criada com o modificador de acesso estático e o benefício da classe interna estática é que não há necessidade de criar o objeto do exterior classe para a criação de objeto de Classe interna estática.

A instância/objeto da classe estática pode ser criada usando a seguinte sintaxe:

Exterterclass.Innerclass OBJ = New Outterclass.Interno ();

Exemplo

classe externa
String name1 = "John";
classe estática interna
Nome da sequência2 = "Micheal";


classe pública mainClass
public static void main (string [] args)
Exterior.Obj2 interno = novo.Interno();
Sistema.fora.println (obj2.nome2);

O código completo e a respectiva saída serão assim:

A estático A classe interna não é capaz de acessar os atributos ou métodos da classe da classe externa:

O snippet de código acima verifica que a classe interna estática não pode acessar o membro da classe externa.

Conclusão

Em Java, uma classe pode ser criada dentro de outra classe referida como classe interna e para criar uma classe interna primeiro, temos que criar uma instância/objeto da classe externa e depois podemos criar o objeto da classe interna. A classe interna privada Também pode ser criado em Java e não pode ser acessado a partir da classe externa. Além disso, em um Classe interna estática, não há necessidade de criar o objeto do exterior classe para acessar a classe estática interna e não pode acessar os membros da classe da classe externa.