Test.java(测试类):
package cn.xxx.demo;
public class Test {
public static void main(String[] args) {
/*
* 调用外部类中的内部类的方法inner()
* 依靠外部类对象,找到内部类,通过内部类对象,调用内部类的方法
* 格式:
* 外部类名.内部类名 变量 = new 外部类对象().new 内部类对象();
* 变量.内部类方法()
*/
Outer.Inner in = new Outer().new Inner(); // 创建内部类对象格式。
in.inner(); // 调用内部类对象的方法。
}
}
Outer.java(外部类):
package cn.xxx.demo;
/*
* 内部类的定义
* 将内部类,定义在了外部的成员位置
* 类名Outer,内部类名Inner
*
* 成员内部类,可以使用成员修饰符,public static ....
* 也是个类,可以继承,可以实现接口
*
* 调用规则: 内部类,可以使用外部类成员,包括私有
* 外部类要使用内部类的成员,必须建立内部类对象
*/
public class Outer { // 外部类
private int a = 1; // 可以被内部类访问。即使是private的也可以。
//外部类成员位置,定义内部类
public class Inner{ // 内部类
public void inner(){
System.out.println("内部类方法inner "+a);
}
}
}