Javaの内部クラスは4つのタイプに分けられます:
1) 静的内部クラス: 静的によって変更されたクラスは静的クラスと呼ばれます。クラス内に静的クラスを置くことは静的内部クラスと呼ばれます
特徴: 外部の世界にアクセスできます: 静的メソッド。 /静的プロパティ、インスタンス リソースにアクセスできません
ケース:
import inner.Foo.Koo;//Koo 静的内部クラスを必ずインポートしてください
public class Demo9 {
public static void main(String[] args) {
Koo koo = new Koo();
koo.add();
}
}
class Foo{
int a = 12;//インスタンス変数
static int aa=16;
public static void show(){ System.out.println("static メソッド");}
//static 内部クラス
static class Koo{
public void add(){
// System.out . println(a); 静的内部クラスはインスタンス リソース (変数) にアクセスできません
System.out.println(aa);
show();//静的内部クラスは外部の静的プロパティとメソッドにアクセスできます
}
}
}
2) メンバー内部クラス: クラス内では、静的変更を行わないクラスが直接定義されます。メンバー内部クラス オブジェクトを作成する場合、最初に外部クラスを作成する必要があります。
特徴: メンバー内部クラス、外部プロパティとメソッドにアクセス可能
ケース:
import inner.Foo1.Koo1;
public class Demo10 {
public static void main(String[] args) {
/ / Koo1 koo1 = new Koo1(); メンバーの内部クラスを作成するには、まず外部クラスのオブジェクトを作成する必要があります
Foo1 foo1 = new Foo1();
//覚えておいてください(筆記試験)
Koo1 koo1 = foo1。 Koo1();
koo1.show();
}
}
class Foo1{
int a =12;
static int aa = 16;
class Koo1{
void show() {
System.out.println(a+" , "+aa);
}
}
}
3) ローカル内部クラス: 非常にまれに使用され、メソッド内でクラスを定義することを特徴とします (エンタープライズ開発 中規模およびほとんど使用されません)
特徴: ローカル内部クラス、外部変数を参照する場合、変数はfinalで変更する必要があります
ケース:
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(){
//ローカル内部クラスで、外部変数を参照し、次に変数を参照しますFinal で変更する必要があります
return a+b+c;
}
}
Foo2 foo2 = new Foo2();
System.out.println(foo2.add());
}
}
4) 匿名内部クラス: 元のクラスの継承
特徴: インターフェース/抽象クラスと組み合わせて使用
例: 新しいクラス名/インターフェース名{
オーバーライドされたメソッド
};
ケース:
public class Demo1 {
public static void main(String[] args) {
Koo koo = new Koo(){
// メソッドをオーバーライドできます
public String toString() {
Return "Koo オブジェクトが生成されます";
}
// 匿名内部クラスでは新しいメソッドを作成できません
// public void show(){
// System.out.println( "liu");
// }
};
System.out.println(koo);
// koo.show();
}
}
class Koo{
}
その他の Java 内部クラスおよび匿名内部クラス関連の記事については、PHP 中国語 Web サイトに注目してください。