From e2f32c3675774ca5bd9ec5332d6bb4fcd1044ee9 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sun, 25 Jan 2026 16:06:54 +0800 Subject: [PATCH] =?UTF-8?q?day11-=E6=88=90=E5=91=98=E5=86=85=E9=83=A8?= =?UTF-8?q?=E7=B1=BB=E7=9A=84=E5=AE=9A=E4=B9=89=E5=92=8C=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day11/src/com/inmind/innerclass03/Demo05.java | 22 +++++++++ .../inmind/innerclass03/MemberOutClass.java | 48 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 day11/src/com/inmind/innerclass03/Demo05.java create mode 100644 day11/src/com/inmind/innerclass03/MemberOutClass.java diff --git a/day11/src/com/inmind/innerclass03/Demo05.java b/day11/src/com/inmind/innerclass03/Demo05.java new file mode 100644 index 0000000..07bbecd --- /dev/null +++ b/day11/src/com/inmind/innerclass03/Demo05.java @@ -0,0 +1,22 @@ +package com.inmind.innerclass03; +/* +成员内部类的使用 +1.间接使用,在定义内部类的外部类的方法中创建出对象,调用内部类对象的方法,在测试类,创建外部类的对象,调用方法。 +2.直接使用:直接通过内部类对象访问它的内容 +外部类.内部类 对象名 = new 外部类().new内部类(); + +注意:内部类会产生一个自己独有的字节码文件!!!$ + */ +public class Demo05 { + public static void main(String[] args) { + //1.间接使用,在定义内部类的外部类的方法中创建出对象,调用内部类对象的方法 + MemberOutClass moc = new MemberOutClass(); + moc.outerMethod(); + System.out.println("------------------"); + //2.直接使用:直接通过内部类对象访问它的内容 + MemberOutClass.InnerClass innerClass = new MemberOutClass().new InnerClass(); + System.out.println(innerClass.num); + System.out.println(innerClass.num2); + innerClass.innerMethod(); + } +} diff --git a/day11/src/com/inmind/innerclass03/MemberOutClass.java b/day11/src/com/inmind/innerclass03/MemberOutClass.java new file mode 100644 index 0000000..d9eb198 --- /dev/null +++ b/day11/src/com/inmind/innerclass03/MemberOutClass.java @@ -0,0 +1,48 @@ +package com.inmind.innerclass03; +/* +内部类:将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。 +分类: +1.成员内部类:(类中方法外) +2.局部内部类:(方法中) + 匿名内部类(重点) +------------------------------------------------------- + +成员内部类的定义(写在成员位置) +public class 外部类名{ + int i = 0; + public class 内部类名{ + } +} +成员内部类中内容访问的注意事项: +1.内部类是可以直接使用外部类的成员变量 +2.外部类要使用内部类的内容,必须通过创建内部类的对象 +3.内部类访问外部类同名变量:必须使用外部类名.this.变量名(如OuterClass.this.value)。 + */ +public class MemberOutClass { + //成员变量 + private int num = 10; + private int num1 = 40; + //成员位置处,定义一个类,就是成员内部类 + public class InnerClass{ + int num = 20; + int num2 = 30; + public void innerMethod(){ + System.out.println(MemberOutClass.this.num1); + System.out.println(this.num); + System.out.println(this.num2); + System.out.println(MemberOutClass.this.num); + System.out.println("成员内部类的innerMethod方法执行了"); + } + } + + //成员方法 + public void outerMethod(){ + System.out.println("外部类的outerMethod执行"); + //创建成员内部类的对象,调用它的属性和行为 + InnerClass innerClass = new InnerClass(); + System.out.println(innerClass.num);//20 + System.out.println(innerClass.num2);//30 + innerClass.innerMethod(); + } + +}