day11-成员内部类的定义和使用

This commit is contained in:
2026-01-25 16:06:54 +08:00
parent 47f8b81d94
commit e2f32c3675
2 changed files with 70 additions and 0 deletions

View File

@@ -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();
}
}

View File

@@ -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();
}
}