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

java調用內部類和外類

林國瑞1年前6瀏覽0評論

Java是一種面向對象的編程語言,支持內部類和外部類的定義。內部類可以訪問外部類的私有屬性和方法,而外部類不能訪問內部類的私有屬性和方法。Java中調用內部類和外部類的方式略有不同,下面將詳細介紹。

在Java中,內部類有四種類型:成員內部類、局部內部類、匿名內部類和靜態內部類。其中,成員內部類和靜態內部類可以被外部類直接調用,而局部內部類和匿名內部類只能被定義在方法中,外部類無法直接調用。

public class OuterClass {
private int outerData = 10;
public static int staticData = 20;
//成員內部類
public class InnerClass {
private int innerData = 5;
public void display() {
System.out.println("In inner class: outerData = " + outerData +
" staticData = " + staticData +
" innerData = " + innerData);
}
}
//靜態內部類
public static class StaticInnerClass {
public void display() {
System.out.println("In static inner class: staticData = " + staticData);
}
}
public void test() {
//局部內部類
class LocalInnerClass {
private int localData = 3;
public void display() {
System.out.println("In local inner class: outerData = " + outerData +
" staticData = " + staticData +
" localData = " + localData);
}
}
//匿名內部類
Runnable r = new Runnable() {
public void run() {
System.out.println("In anonymous inner class: staticData = " + staticData);
}
};
//訪問成員內部類
InnerClass ic = new InnerClass();
ic.display();
//訪問靜態內部類
StaticInnerClass sic = new StaticInnerClass();
sic.display();
//訪問局部內部類
LocalInnerClass lic = new LocalInnerClass();
lic.display();
//訪問匿名內部類
r.run();
}
public static void main(String[] args) {
OuterClass oc = new OuterClass();
oc.test();
}
}

上述代碼演示了Java中調用四種不同類型的內部類的方法。成員內部類和靜態內部類可以使用外部類實例直接調用,而局部內部類和匿名內部類只能在方法中使用。在成員內部類中,可以訪問外部類的私有屬性和方法,而靜態內部類只能訪問外部類的靜態屬性和方法。

在Java中,外部類不能直接調用內部類的私有屬性和方法。要訪問內部類的私有屬性和方法,需要在內部類中使用外部類的實例來調用。例如:

public class OuterClass {
private int outerData = 10;
public void test() {
//成員內部類
class InnerClass {
private int innerData = 5;
public void display() {
System.out.println("In inner class: innerData = " + innerData);
}
}
InnerClass ic = new InnerClass();
ic.display();
//調用內部類的私有屬性和方法
OuterClass oc = new OuterClass();
System.out.println("In outer class: outerData = " + oc.outerData);
}
public static void main(String[] args) {
OuterClass oc = new OuterClass();
oc.test();
}
}

上述代碼演示了在外部類中調用內部類的私有屬性和方法的方法。在內部類中定義一個外部類的引用,可以用來訪問外部類的私有屬性和方法。