成員內部類
若外部類名與內部類名的成員重名要如何調用?
package mInner;
public class InnerClassTest {
public static void main(String[] args) {
MyOuter.Inner i = new MyOuter().new Inner();
i.show();
}
}
class MyOuter {
int num = 10;
class Inner {
int num = 20;
public void show() {
int num = 30;
System.out.println(num); //30
System.out.println(this.num); //20
System.out.println(MyOuter.this.num); //10
}
}
}
面試題:
為何需要學習使用內部類:封裝性更好
- 內部類訪問特點
- 內部類調用外部類的成員都可以,私有也行
- 外部類 是調用不到內部類的成員的
- 外部類想調用內部類,必須得創建對象
public class Car {
private String carName;
int carAge;
String carColor;
public void show(){
System.out.println(carName);
// System.out.println(engineName) 這是調不到的
// 我想調用engineName怎麼辦
// 創建對象!
Engine e = new Engine();
System.out.println(e.engineName);
}
class Engine{
String engineName;
int engineAge;
public void show(){
System.out.println(engineName);
System.out.println(carName); //Private也可以
}
}}