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{} 展开
 我来答
狸邩
2018-08-31 · 超过14用户采纳过TA的回答
知道答主
回答量:45
采纳率:66%
帮助的人:7.3万
展开全部
不给s赋值就会输出“do”,这是因为你在方法里不是new在这个局部内部类了么,最后的return new innerClass2("do"),初始化给s的值就是do,当然会输出"do"。
至于为什么要引用接口,首先你的局部方法,返回值就是这个接口对象,如果你的局部内部类不去引用接口,那返回这个局部内部类对象,肯定会报错的。
事实上,这里局部内部类的作用就是返回一个接口的对象。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式