Heim  >  Artikel  >  Java  >  Java-innere Klasse, anonyme innere Klasse

Java-innere Klasse, anonyme innere Klasse

高洛峰
高洛峰Original
2016-12-15 12:51:581579Durchsuche

Java-interne Klassen werden in 4 Typen unterteilt:

1) Statische interne Klasse: Eine durch Statik geänderte Klasse wird als statische Klasse bezeichnet. Das Einfügen einer statischen Klasse in eine Klasse wird als statische interne Klasse bezeichnet

Funktionen: Kann auf die Außenwelt zugreifen: statische Methoden/statische Eigenschaften, kann nicht auf Instanzressourcen zugreifen

Fall:

import inner.Foo.Koo;//Achten Sie darauf, die zu importieren Koo static inner class

public class Demo9 {

public static void main(String[] args) {

Koo koo = new Koo();

koo.add ();

}

}

class Foo{

int a = 12;//Instanzvariable

static int aa =16;

public static void show(){ System.out.println("static method");}

//static inner class

static class Koo {

public void add(){

// System.out.println(a); Statische innere Klassen können nicht auf Instanzressourcen (Variablen) zugreifen

System .out. println(aa);

show();//Statische innere Klassen können auf statische Eigenschaften und Methoden der Außenwelt zugreifen

}

}

}

2) Innere Klasse des Mitglieds: Innerhalb einer Klasse wird eine Klasse ohne statische Änderung direkt definiert. Beim Erstellen eines inneren Klassenobjekts des Mitglieds muss zuerst die äußere Klasse erstellt werden.

Funktionen: Mitglied der inneren Klasse, kann auf externe Eigenschaften und Methoden zugreifen

Fall:

import inner.Foo1.Koo1;

öffentliche Klasse Demo10 {

public static void main(String[] args) {

//Koo1 koo1 = new Koo1(); Um eine innere Mitgliedsklasse zu erstellen, müssen Sie zuerst ein äußeres Klassenobjekt erstellen

Foo1 foo1 = new Foo1();

//Merken (schriftlicher Test)

Koo1 koo1 = foo1.new Koo1();

koo1.show ( );

}

}

class Foo1{

int a =12;

static int aa = 16;

class Koo1{

void show(){

System.out.println(a+" , "+aa);

}

}

}

3) Lokale interne Klassen: selten verwendet, gekennzeichnet durch die Definition einer Klasse innerhalb einer Methode (selten verwendet in der Unternehmensentwicklung)

Funktionen: Lokale innere Klassen , wenn auf externe Variablen verwiesen wird, müssen die Variablen mit final geändert werden

Fall:

public class Demo11 {

public static void main(String[ ] args) {

final int a = 12;

final int b = 13;

class Foo2{

int c = 16;

public int add(){

//Wenn in einer lokalen inneren Klasse auf eine externe Variable verwiesen wird, muss die Variable mit final geändert werden

return a+b+c;

}

}

Foo2 foo2 = new Foo2();

System.out.println(foo2.add());

}

}

4) Anonyme innere Klasse: eine Vererbung der ursprünglichen Klasse

Funktionen: wird in Kombination mit Schnittstellen/abstrakten Klassen verwendet

z. B. neuer Klassenname /Schnittstellenname {

Override-Methode

};

Fall:


öffentliche Klasse Demo1 {

public static void main(String[] args) {

Koo koo = new Koo(){

// Sie können die Methode

public String toString überschreiben () {

return „Ein Koo-Objekt wird generiert“;

}

// Neue Methoden können nicht in anonymen inneren Klassen erstellt werden

// public void show(){

// System.out.println("liu");

// }

};

System. out.println(koo);

// koo.show();

}

}

class Koo{

}



Weitere Artikel zu internen Java-Klassen und anonymen internen Klassen finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn