49 lines
1.7 KiB
Java
49 lines
1.7 KiB
Java
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();
|
||
}
|
||
|
||
}
|