Java-面向对象_内部类_成员内部类
/* * 1.类的组成:属性,方法,构造器,代码块(普通快,静态块,构造块,同步块),内部类 * 2.一个类TestOuter的内部的类SubTest叫内部类,内部类:SubTest 外部类;TestOuter * 3.内部类:成员内部类 和 局部内部类(位置:方法内,块内,构造器内) * 4.成员内部类: * 里面属性:方法,构造器等 * 修饰类:private,default,protect,public,final,abstract * */ public class TestOuter { //成员内部类: public class D{ String name; int age = 20; public void method() { //5.内部类可以访问外部类的内容 // System.out.println(age); // a(); int age = 30; //8.内部类和外部类重名的时候使用 System.out.println(age);//30 System.out.println(this.age); System.out.println(TestOuter.this.age);//10 } } //静态成员内部类: static class E{ public void method() { //6.静态内部类只能访问外部类中被static修饰的内容 // System.out.println(age); // a(); } } int age = 10; public void a() { System.out.println("这是a方法"); { System.out.println("这是一个普通快"); class B{ } } class A{ } //外部类想访问内部类的东西要用对象访问 D d = new D(); System.out.println(d.name); d.method(); } static { System.out.println("这是静态块"); } { System.out.println("这是构造块"); } public TestOuter() { System.out.println("这是构造方法"); class C{ } } } class Demo{ public static void main(String[] args) { //创建外部类对象: TestOuter tOuter = new TestOuter(); tOuter.a(); //创建内部类的对象: //静态的成员内部类创建对象: TestOuter.E e = new TestOuter.E(); //非静态的成员内部类创建对象: // 错误:TestOuter.D d = new TestOuter.D(); TestOuter.D d = tOuter.new D(); } }