
java 关于局部内部类的问题
请问这里为什么给s赋值就会输出“局部内部类”如果不给s赋值就会输出“do”还有这里借助接口的意义是什么?看的不是很明白。刚学不久,希望大神们尽量给解释的粗浅一些。代码如下...
请问这里为什么给s赋值就会输出 “局部内部类”如果不给s赋值就会输出 “do”还有这里借助接口的意义是什么? 看的不是很明白。刚学不久,希望大神们尽量给解释的粗浅一些。代码如下(可看图片)public class demo2 { public OutInterface action(String x) { class innerClass2 implements OutInterface { //局部内部类 public innerClass2(String s) {// s = x; System.out.println(s); } } return new innerClass2("do"); } public static void main(String[] args) { demo2 d = new demo2(); d.action("局部内部类"); }}interface OutInterface{}
展开
1个回答
展开全部
不给s赋值就会输出“do”,这是因为你在方法里不是new在这个局部内部类了么,最后的return new innerClass2("do"),初始化给s的值就是do,当然会输出"do"。
至于为什么要引用接口,首先你的局部方法,返回值就是这个接口对象,如果你的局部内部类不去引用接口,那返回这个局部内部类对象,肯定会报错的。
事实上,这里局部内部类的作用就是返回一个接口的对象。
至于为什么要引用接口,首先你的局部方法,返回值就是这个接口对象,如果你的局部内部类不去引用接口,那返回这个局部内部类对象,肯定会报错的。
事实上,这里局部内部类的作用就是返回一个接口的对象。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询