欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java 內部類和匿名內部類

呂致盈1年前8瀏覽0評論

Java內部類是指在一個類的內部定義另一個類,內部類可以被看做是外部類的一部分,能夠訪問外部類的成員變量和方法。內部類分為成員內部類、靜態內部類、局部內部類、匿名內部類。

成員內部類:定義在類的內部,不是在方法內。成員內部類可以訪問外部類的成員變量和方法,使用成員內部類的方式為,首先要實例化外部類,在使用外部類實例來實例化內部類。

class Outer {
int x = 10;
class Inner {
int y = 5;
}
}
Outer myOuter = new Outer();
Outer.Inner myInner = myOuter.new Inner();
System.out.println(myInner.y + myOuter.x);

靜態內部類:定義在類的內部,被聲明為靜態的。靜態內部類可以訪問外部類的靜態成員,但是不能訪問外部類的普通成員。使用靜態內部類的方式為,直接通過類名來實例化內部類。

class Outer {
static int x = 10;
static class Inner {
int y = 5;
}
}
Outer.Inner myInner = new Outer.Inner();
System.out.println(myInner.y + Outer.x);

局部內部類:定義在方法中,只能在方法內部實例化。局部內部類可以訪問外部類的成員變量和方法。

class Outer {
int x = 10;
void myMethod() {
class Inner {
int y = 5;
}
Inner myInner = new Inner();
System.out.println(myInner.y + x);
}
}
Outer myOuter = new Outer();
myOuter.myMethod();

匿名內部類:沒有類名的內部類,通常用于實現某個接口或抽象類的內部類。匿名內部類只能實例化一次,實例化時即定義實現的接口或抽象類,也可以在實例化時直接定義類的屬性或方法。

interface MyInterface {
void sayHello();
}
MyInterface myInterface = new MyInterface() {
@Override
public void sayHello() {
System.out.println("Hello World");
}
};
myInterface.sayHello();