如何调用外部类中内部类的方法?如何创建内部类对象并调用其方法?
如何调用外部类中内部类的方法(附代码示例)
嘿,针对你提出的两个问题——怎么调用Inner内部类的方法、怎么创建它的对象,我结合你给的代码来一步步说明:
首先,你代码里的Inner是非静态内部类(没有static关键字修饰),这种内部类的实例必须依附于外部类Construct的实例才能存在,所以得按以下步骤来:
1. 先创建外部类的实例
你已经在main方法里写了这一步,没问题:
Construct c = new Construct();
2. 通过外部类实例创建内部类对象
非静态内部类的对象不能直接new,得借助外部类的实例来初始化,语法是外部类实例.new 内部类(),所以可以这么写:
Construct.Inner innerObj = c.new Inner();
嫌麻烦的话也可以直接把两步合并成一行:
Construct.Inner innerObj = new Construct().new Inner();
3. 调用内部类的方法
拿到内部类的实例后,直接调用inner()方法就可以了:
innerObj.inner();
整合后的完整代码
把这些步骤放进你的main方法里,运行就能看到输出啦:
package collections; public class Construct { class Inner { void inner() { System.out.println("inner class method "); } } public static void main(String[] args) { Construct c = new Construct(); Construct.Inner innerObj = c.new Inner(); innerObj.inner(); } }
额外补充:如果是静态内部类怎么办?
要是你把Inner改成静态内部类(加上static修饰),那创建对象就不需要依赖外部类实例了,直接这么写就行:
// 假设Inner是static class Construct.Inner staticInnerObj = new Construct.Inner(); staticInnerObj.inner();
内容的提问来源于stack exchange,提问作者Hinamika Jain
相关产品推荐
相关产品推荐

