2 qq 27049279 qq_27049279 于 2015.06.17 15:52 提问

小白请教有关内部类的问题

pravate OnClickListener myButton = new OnClickListener(){};为什么说是内部类;
Int i = new Int() 为什么又是声明对象呢?

4个回答

lzp_lrp
lzp_lrp   Ds   Rxr 2015.06.17 15:58
已采纳

内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。
*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。

注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。所以内部类的成员变量/方法名可以和外部类的相同。

可以参考
http://android.blog.51cto.com/268543/384844

bulusli3
bulusli3   Ds   Rxr 2015.06.17 15:58

第一个也是声明对象,只不过通常叫做内部类,第二个你也可以说是内部类,但一般不会这样讲。

qq_27049279
qq_27049279 原来是一个意思,不同的说法啊,懂了。
2 年多之前 回复
frank_20080215
frank_20080215   2015.06.17 15:58

Int 是对象,这个类是.Net内部已经定义好的。不是内部类。 new OnClickListener则是匿名类

qq_27049279
qq_27049279 如果去掉new OnClickListener后面的大括号,是不是也变成了对象了呢~。~/////?
2 年多之前 回复
qq_27049279
qq_27049279 如果去掉new OnClickListener后面的大括号,是不是也变成了对象了呢~。~/////?
2 年多之前 回复
xuzhiteng94
xuzhiteng94   2015.06.17 16:05

同是小白来回答下:因为前一句后面加了大括号,后面一句没有加大括号。(前面的语句的private打错了。),求大神继续回答

qq_27049279
qq_27049279 刚刚仔细一看还真是这样的诶,你真细心,收益匪浅谢谢了。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片