package cn.sxt.oop;
/**
* *測試非靜态内部類
* *内部類也是獨立的類
* *在編譯的時候獨立生成class檔案
* *有static就是靜态内部類,沒有static就是非靜态内部類
* @author 高嵩
*
*/
public class TestInnerClass {
public static void main(String[] args) {
Outer.Inner inner = new Outer().new Inner();
inner.show();
}
}
class Outer{
private int age = 10;
public void testOuter() {
}
class Inner{
int age = 20;
public void show() {
int age = 30;
System.out.println("外部類的成員變量age:"+Outer.this.age);
System.out.println("内部類的成員變量age:"+this.age);
System.out.println("局部變量的age:"+age);
}
}
}
靜态内部類
package cn.sxt.oop;
/**
* *測試靜态内部類
* @author 高嵩
**靜态内部類不依托于外部類對象
*/
public class TestStaticInnerClass {
public static void main(String[] args) {
Outer2.Inner2 inner = new Outer2.Inner2();
}
}
class Outer2{
static class Inner2{
}
}