Una classe interna en java significa una classe que és membre d’una altra classe. En , hi ha diversos tipus de classes interiors. Aquest article us ajudarà a desfer totes aquestes classes. Es discutiran detalladament les següents indicacions,
- Classe interior imbricada
- Mètode Classes interiors locals
- Classes interiors anònimes
- Classes imbricades estàtiques
Comencem, doncs, amb aquest article de classe interna en Java,
Classe interior a Java
Classe interior imbricada
Aquesta classe té accés a qualsevol valor d’instància privada de la classe externa. També es permet escriure una classe dins d’una altra classe a Java. La classe escrita dins es coneix com a classe imbricada i la classe que conté la classe interna es coneix com a classe externa.
Sintaxi
class outsideplace {class innerplace {}}
Exemple
java diferència entre hashmap i hashtable
A l'exemple que es mostra a continuació, fem que la classe interior sigui privada i accedim a la classe amb l'ajut del mètode.
class Outer_place {int num private class Inner_place {public void print () {System.out.println ('És una classe interna')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} classe pública My_class {public static void main (String args []) {Outer_place outer = new Outer_place () outer.display_Inner ()}}
Sortida
Aquí, el lloc exterior és la classe exterior i el lloc interior s’anomena classe interior.
Continuem amb aquest article de classe interna en Java,
Accés a membres privats
Les classes interiors també s’utilitzen per accedir als membres privats de la classe. Suposem que hi ha una classe que tingui membres privats per accedir-hi. Ara escriviu una classe interior dins de la classe i accediu als membres privats des d’un mètode dins de la classe interna.
Aquí teniu l'exemple,
class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('És un mètode getnum de classe interna:') return num}}} classe pública 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 ())}}
Sortida
Seguint,
Mètode de classes interiors locals
A Java, podeu escriure una classe dins del mètode que es coneixerà com a tipus local. Com totes les variables locals, l'abast de la classe interna està restringit dins d'un mètode.
Exemple
navegador db per revisar sqlite
L'exemple següent mostrarà com s'implementa un mètode de classe interna local.
public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('mètode per a classes internes' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace outer = new Outerplace () outer.my_Method ()}}
Sortida
Continuem amb aquest article de classe interna en Java,
Classe interior anònima
Qualsevol classe interna que es declara sense el nom de classe s'anomena classe interna anònima. En el cas de classes interiors anònimes, l’instanciem i la declarem alhora.
Sempre que volem anul·lar el mètode de classe o una interfície, fem servir aquesta classe.
Sintaxi
AnonymousInner obj1 = nou AnonymousInner () {mètode de buit públic () {}}
Exemple
classe abstracta 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 ('exemple d'anònim classe interior ')}} inner.mymethod ()}}
Sortida
Continuem amb aquest article de classe interna en Java,
Com a argument de classe interna anònima
En això, si un mètode accepta l'objecte de la interfície, d'una classe abstracta o de la classe concreta, llavors podem implementar la interfície, passar l'objecte al mètode i ampliar la classe abstracta.
Sintaxi
obj. mètode (nova classe () {public void do {}})
Exemple
// interfície d’interfície Missatge {String greet ()} classe pública My_class {// s’accepta l’objecte del missatge d’interfície mitjançant aquest mètode public void displayMessage (Missatge m) {System.out.println (m.greet () + ', exemple de classe interior anònima com a argument ')} public static void main (String args []) {// Instanciació de la classe My_class obj = new My_class () // Passant la classe interna anònima com a argument obj.displayMessage (missatge nou () {public String greet () {return 'Hey'}})}}}
Sortida
Continuem amb aquest article de classe interna en Java,
Classe interna anònima d'una subclasse especificada
Codi font
classe Demo {void show () {System.out.println ('I was in show method of class')}} class Flavor1Demo {Demo static d = Demo new () {void show () {super.show () System. out.println ('he estat present a la classe Flavor1Demo')}} public static void main (String [] args) {d.show ()}}
Sortida
Continuem amb aquest article de classe interna en Java,
Classe interna anònima com a implementador de Specified Interfície
Codi font
classe Flavor2Demo {// classe que implementa la interfície estàtica de Hello Hello h = new Hello () {public void show () {System.out.println ('I was present in anonymous class')}} public static void main (String [] args) interfície {h.show ()}} Hola {void show ()}
Sortida
Continuem amb aquest article de classe interna en Java,
Classes imbricades estàtiques
Aquestes classes no es coneixen tècnicament com a classes internes. Aquestes classes són similars al membre estàtic de la classe externa. Una classe imbricada estàtica no té accés a les variables i mètodes de la classe externa. No necessitem instanciar la classe externa, s’hi pot accedir directament mitjançant els membres estàtics.
Sintaxi
fusionar ordenar en c ++
Classe externa {Classe estàtica nested_example {}}
Exemple
public class Outer {classe estàtica Nested_Example {public void my_method () {System.out.println ('És la classe imbricada')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}
Sortida
Així hem arribat al final d’aquest article. Si voleu obtenir més informació,fes un cop d'ull al per Edureka, una empresa d’aprenentatge en línia de confiança. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate & Spring
Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest article i us respondrem el més aviat possible.