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,
- Classe interna aninhada
- Método Classes internas locais
- Classes internas anônimas
- Classes aninhadas estáticas
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
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.