Como implementar classe aninhada em Java?



Este artigo sobre classes aninhadas em java ajudará você a entender como implementar classes aninhadas com a ajuda de um programa de exemplo.

Em Java, uma classe pode ser definida dentro de outra classe e essas classes são conhecidas como classes aninhadas. Essas classes ajudam a agrupar logicamente as classes que são usadas apenas em um lugar. Isso aumenta o uso de encapsulamento e cria um código mais legível e sustentável. Este blog sobre 'Classe aninhada em Java' lhe dará uma introdução rápida e direta às classes aninhadas no . Abaixo estão os tópicos abordados neste blog:

Classe aninhada em Java

o classe escrita dentro de uma classe é chamada de classe aninhada, enquanto a classe que contém a classe interna é chamada de classe externa. Abaixo estão alguns pontos a serem lembrados para classes aninhadas em Java -





como clonar objeto em java
  • O escopo de uma classe aninhada é limitado por sua classe envolvente.
  • Uma classe aninhada tem acesso aos membros da classe na qual está aninhada. Mas, a classe envolvente não pode acessar os membros da classe aninhada.
  • Uma classe aninhada é seu membro de classe envolvente.
  • Uma classe aninhada pode ser declarada pública, privada, protegida ou privada do pacote.

Tipos de classes aninhadas

Classe aninhada interna / não estática: Em Java, as classes não estáticas são um mecanismo de segurança. Uma classe não pode ser associada ao acessar editar privada, mas se você tiver a classe como membro de outra classe, a classe não estática pode se tornar privada.

Tipos de classes internas e menos



  • Classe Interna
  • Classe interna local do método
  • Classe interna anônima

Classe Interna

Para criar uma classe interna, você só precisa escrever uma classe dentro de uma classe. Uma classe interna pode ser privada que não pode ser acessada de um objeto fora da classe. Abaixo está um programa para criar uma classe interna. Neste exemplo, a classe interna se torna privada e é acessada por meio de um método.

class Outer_Test {int num // classe interna classe privada Inner_Test {public void print () {System.out.println ('Esta é uma nossa classe interna')}} // Acessando a classe interna a partir do método void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// Instanciando a classe externa Outer_Test outer = new Outer_Test () // Acessando o método display_Inner () . outer.display_Inner ()}}

Resultado
Classe aninhada interna- Edureka

Classe interna local do método

Em Java, uma classe pode ser escrita dentro de um e é um tipo local. Semelhante às variáveis ​​locais, o escopo de uma classe interna é restrito ao método. Uma classe interna local do método é incorporada apenas dentro do método em que a classe interna é definida. O programa abaixo mostra como usar uma classe interna local de método.



public class Outerclass {// método de instância da classe externa void my_Method () {int num = 1001 // método-local classe interna class StarInner_Test {public void print () {System.out.println ('Esta é a classe interna estrela' + num)}} // fim da classe interna // Acessando a classe interna StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass outer = new Outerclass () outer. meu_Metodo ()}}

Resultado

Classe interna anônima

Classe interna anônima é uma classe interna declarada sem um nome de classe. Em uma classe interna anônima, nós a declaramos e instanciamos ao mesmo tempo. Eles geralmente são usados ​​quando você precisa sobrescrever o método de uma classe ou interface. O programa abaixo mostra como usar uma classe interna anônima -

classe abstrata AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest inner = new AnonymousInnerTest () {public void mytest () {System.out.println ('Este é um exemplo de classe de teste interno anônimo ')}} inner.mytest ()}}

Resultado-

Classe aninhada estática: PARA é uma classe aninhada que é um membro estático da classe externa. Ao contrário da classe interna, a classe aninhada estática não pode acessar variáveis ​​de membro da classe externa porque a classe aninhada estática não requer uma instância da classe externa. Portanto, não há referência à classe externa com OuterClass.this. A sintaxe de uma classe aninhada estática é -

classe MyOuter {static class Nested_Test {}}

Exemplo de classe aninhada estática

public class Outer {static class Nested_Test {public void my_method () {System.out.println ('Esta é a classe de teste aninhada de Edureka')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}

Resultado

ler e escrever arquivo excel em java

Diferença entre classes aninhadas estáticas e não estáticas

As classes aninhadas estáticas não têm acesso a outros membros da classe envolvente diretamente. Sendo estático, ele deve acessar os membros não estáticos de sua classe envolvente por meio de um objeto, o que significa que não pode se referir aos membros não estáticos de sua classe envolvente diretamente. E devido a essa restrição, classes aninhadas estáticas raramente são usadas.

As classes aninhadas não estáticas têm acesso a todos os membros de sua classe externa e podem se referir a eles diretamente da mesma maneira que outros membros não estáticos da classe externa.

Antes de chegarmos ao final deste artigo, vamos examinar alguns pontos-chave.

Pontos-chave para lembrar

  • A classe interna é tratada como um membro regular de uma classe.
  • Como a classe interna é membro da classe externa, você pode aplicar diferentes modificadores de acesso como protected, private à sua classe interna.
  • Como a classe Nested é membro de sua classe envolvente, você pode usar. notação (ponto) para acessar a classe aninhada e seus membros.
  • Usar uma classe aninhada torna seu código mais legível e fornece melhores encapsulamento .
  • A classe interna tem acesso a outros membros da classe externa, mesmo se eles forem declarados privados.

Com isso, chegamos ao fim deste blog sobre classes aninhadas em Java. Se você deseja aprender mais sobre Java, confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi elaborado para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Classe aninhada em Java” e entraremos em contato com você o mais breve possível.