在 Java 中,靜態類和非靜態內部類之間的區別是什麼?
以下列出內部類和靜態內部類之間的顯著差異。
訪問外部類的成員
靜態內部類可以直接訪問外部類的靜態成員。但是,要訪問外部類的例項成員,你需要例項化外部類。
示例
public class Outer {
int num = 234;
static int data = 300;
public static class Inner{
public static void main(String args[]){
Outer obj = new Outer();
System.out.println(obj.num);
System.out.println(data);
}
}
}輸出
234 300
非內部類可以直接訪問它外部類的成員(既包括例項成員,也包括靜態成員),無需例項化。
示例
public class Outer2 {
int num = 234;
static int data =300;
public class Inner{
public void main(){
System.out.println(num);
System.out.println(data);
}
}
public static void main(String args[]){
new Outer2().new Inner().main();
}
}輸出
234 300
擁有內部類中的靜態成員
不能把非靜態內部類中的成員設為靜態。只有頂層類和靜態內部類才允許靜態方法。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP