Como implementar classe interna em Java?



Classe interna em java significa uma classe que é membro de outra classe. Este artigo o ajudará a desvendar essa aula.

Classe interna em java significa uma classe que é membro de outra classe. Dentro , existem vários tipos de classes internas. Este artigo o ajudará a desvendar todas essas classes. As dicas a seguir serão discutidas em detalhes,

Então, vamos começar com este artigo Inner Class In Java,





Classe interna em Java

Classe interna aninhada

Esta classe tem acesso a qualquer valor de instância privada da classe externa. Escrever uma classe dentro de outra classe também é permitido em Java. A classe escrita dentro é conhecida como classe aninhada e a classe que contém a classe interna é conhecida como classe externa.



Sintaxe

classe outerplace {classe innerplace {}}

Exemplo

No exemplo abaixo, estamos tornando a classe interna privada e acessando a classe com a ajuda do método.



class Outer_place {int num private class Inner_place {public void print () {System.out.println ('É uma classe interna')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} public class My_class {public static void main (String args []) {Outer_place outer = new Outer_place () outer.display_Inner ()}}

Resultado

Saída - Classe interna em Java - Edureka

Aqui, o local externo é a classe externa e o local interno é chamado de classe interna.

Continuando com este artigo Inner Class In Java,

Acessando membros privados

As classes internas também são usadas para acessar os membros privados da classe. Suponha que haja uma classe com membros privados para acessá-los. Agora escreva uma classe interna dentro da classe e acesse os membros privados de um método dentro da classe interna.

Aqui está o exemplo,

class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('É um método getnum da classe interna:') return num}}} public class My_class {public static void main (String args []) {Outer_place outer = new Outer_place () Outer_place.Inner_place inner = outer.new Inner_place () System.out.println (inner.getNum ())}}

Resultado

controle de declarações de fluxo em java

Se movendo,

Método de classes internas locais

Em Java, você pode escrever uma classe dentro do método e isso será conhecido como tipo local. Como todas as variáveis ​​locais, o escopo da classe interna é restrito a um método.

Exemplo

O exemplo a seguir mostrará como uma classe interna local de método é implementada.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('método para classes internas' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace outer = new Outerplace () outer.my_Method ()}}

Resultado

Continuando com este artigo Inner Class In Java,

Classe interna anônima

Qualquer classe interna declarada sem o nome da classe é chamada de classe interna anônima. No caso de classes internas anônimas, nós as instanciamos e declaramos ao mesmo tempo.

Sempre que quisermos sobrescrever o método da classe ou uma interface, usamos esta classe.

Sintaxe

AnonymousInner obj1 = novo AnonymousInner () {public void method () {}}

Exemplo

classe abstrata AnonymousInner {public abstract void mymethod ()} public class Outer_class {public static void main (String args []) {AnonymousInner inner = new AnonymousInner () {public void mymethod () {System.out.println ('exemplo de anônimo classe interna ')}} inner.mymethod ()}}

Resultado

Continuando com este artigo Inner Class In Java,

Como argumento da classe interna anônima

Nesse caso, se um método aceita o objeto da interface, de uma classe abstrata, ou da classe concreta, então podemos implementar a interface, passar o objeto para o método e estender a classe abstrata.

Sintaxe

obj. método (nova classe () {public void do {}})

Exemplo

// interface da interface Message {String greet ()} public class My_class {// objeto da interface da mensagem é aceito por este método public void displayMessage (Message m) {System.out.println (m.greet () + ', exemplo de classe interna anônima como argumento ')} public static void main (String args []) {// Instanciação da classe My_class obj = new My_class () // Passando a classe interna anônima como argumento obj.displayMessage (new Message () {public String greet () {return 'Ei'}})}}

Resultado

Continuando com este artigo Inner Class In Java,

Classe interna anônima de uma subclasse especificada

Código fonte

class Demo {void show () {System.out.println ('eu estava em show método da classe')}} class Flavor1Demo {static Demo d = new Demo () {void show () {super.show () System. out.println ('eu estava presente na classe Flavor1Demo')}} public static void main (String [] args) {d.show ()}}

Resultado

Continuando com este artigo Inner Class In Java,

pepino java selênio exemplo de driver da web

Classe interna anônima como um implementador do especificado Interface

Código fonte

class Flavor2Demo {// classe que implementa interface Hello estático Hello h = new Hello () {public void show () {System.out.println ('eu estava presente em uma classe anônima')}} public static void main (String [] args) {h.show ()}} interface Olá {void show ()}

Resultado

Continuando com este artigo Inner Class In Java,

Classes aninhadas estáticas

Essas classes não são tecnicamente conhecidas como classes internas. Essas classes são semelhantes ao membro estático da classe externa. Uma classe aninhada estática não tem nenhum acesso às variáveis ​​e métodos da classe externa. Não precisamos instanciar a classe externa, ela pode ser acessada diretamente usando os membros estáticos.

Sintaxe

Classe externa {Static class nested_example {}}

Exemplo

public class Outer {static class Nested_Example {public void my_method () {System.out.println ('É a classe aninhada')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}

Resultado

Assim, chegamos ao final deste artigo. Se você deseja aprender mais,Confira o pela Edureka, uma empresa de aprendizagem online confiável. O curso de certificação e treinamento em Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para conceitos básicos quanto 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 artigo e entraremos em contato com você o mais breve possível.