可以先创建外部类实例。
用外部类实例调用内部类构造方法创建内部类实例。
再用这个内部类实例调用内部类成员方法。
A a=new A()A.B b=a.new B()
b.do1()//do是关键字,所以这里在do后面加了个1,否则无法编译。
是可以的,付代码说明:
package com.demopublic class Main {
public static void main(String[] args) {
// 非静态内部类实例对象无法独立存在, 必须依赖于一个外部类的实例对象
// 所以必须先实例化一个外部类对象
Demo demo = new Demo()
// 因为 非静态内部类 也是类的 非静态成员, 所以可以用 对象. 来访问
// 下面用 外部类对象.内部类构造器 来创建内部类对象
Demo.InnerDemo innerDemo = demo.new InnerDemo()
innerDemo.show()
}
}
/**
* 一个外部类
*/
class Demo {
/**
* 内部类, 这里的内部类是非静态的。
*
* 实例化静态内部类很简单, 直接 类名.内部类名, 这里不多说。
*/
public class InnerDemo {
/**
* 内部类的一个方法
*/
public void show() {
System.out.println("这是一个内部类的方法")
}
}
}