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