package com.neibulei;
import com.neibulei.Outer.Inner;
/**
- 普通内部类
- 1.在类的内部定义,与实例变量、实例方法同级别的类。
- 2.外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象。
- 3.当外部类、内部类存在重名属性时,会优先访问内部类属性。
- 4.成员内部类不能定义静态成员。
- @author WHD
*/
public class Test1 {
public static void main(String[] args) {
//创建Outer对象
Outer outer = new Outer();
//输出outer类里的成员变量a
System.out.println(outer.a);
//调用m1方法
outer.m1();
//类名.静态方法名,调用m2静态方法
Outer.m2();
//创建内部类对象,
//内部类名 对象名=外部类对象名.new 内部类();
Inner inner1 = outer.new Inner();
//创建内部类对象
//外部类名.内部类名 对象名=new 外部类名().new 内部类名();
Outer.Inner inner = new Outer().new Inner();
inner.innerM1();
}
}
class Outer{
int a = 20;
public void m1() {
System.out.println(“外部类普通方法m1”);
}
public static void m2() {
System.out.println("外部类静态方法m2");
}
class Inner{
private int a = 100;
private int b = 200;
public void innerM1() {
System.out.println(a);
//调用外部类成员变量
//外部类名.this.外部类成员变量名
System.out.println(Outer.this.a);
System.out.println("内部类的普通方法m1");
}
// 普通内部类不能定义静态方法
// public static void innerM2() {
// System.out.println(“内部类的静态方法m2”);
// }
}
}