diff --git a/day11/src/com/inmind/member_innerclass06/Demo05.java b/day11/src/com/inmind/member_innerclass06/Demo05.java new file mode 100644 index 0000000..14841e5 --- /dev/null +++ b/day11/src/com/inmind/member_innerclass06/Demo05.java @@ -0,0 +1,10 @@ +package com.inmind.member_innerclass06; +/* +内部类:将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。 +分类: +1.成员内部类:(类中方法外) +2.局部内部类:(方法中) + 匿名内部类(重点) + */ +public class Demo05 { +} diff --git a/day11/src/com/inmind/member_innerclass06/Member_Outer_Class.java b/day11/src/com/inmind/member_innerclass06/Member_Outer_Class.java new file mode 100644 index 0000000..171006e --- /dev/null +++ b/day11/src/com/inmind/member_innerclass06/Member_Outer_Class.java @@ -0,0 +1,39 @@ +package com.inmind.member_innerclass06; +/* +成员内部类的定义(写在成员位置) +public class 外部类名{ + int i = 0; + public class 内部类名{ + } +} + +------------------------------ +成员内部类中内容访问的注意事项: +1.内部类是可以直接使用外部类的成员变量 +2.外部类要使用内部类的内容,必须通过创建内部类的对象 +3.在内部类中不能使用static修饰,跟内部类的生命周期有关(JDK17之前不行!!!) +4.内部类访问外部类同名变量:必须使用外部类名.this.变量名(如OuterClass.this.value) + + */ +public class Member_Outer_Class { + int i = 10;//成员变量 + //成员内部类 + public class InnerClass{ + static int value = 30; + int innerI = 20; + int i = 20; + public void innerMethod(){ + System.out.println(value); + System.out.println(i); + System.out.println(Member_Outer_Class.this.i); + System.out.println(innerI); + } + } + + + public void method(){ + InnerClass innerClass = new InnerClass(); + InnerClass.value = 50; + innerClass.innerMethod(); + } +}