黑马程序员技术交流社区
标题:
内部类的分号问题
[打印本页]
作者:
叫我小强
时间:
2014-11-20 15:55
标题:
内部类的分号问题
abstract class AbsDemo
{
abstract void show();
}
class Outer
{
int x = 3;
public void function()
{
AbsDmeo d = new AbsDemo()
{
void show()
{
System.out.println("x===="+x);
}
void abc()
{
System.out.println("haha");
}
};//这为什么要加上一个分好啊 ???不明白
d.show();
}
}
class InnerClassDemo4
{
public static void main(String[] args)
{
new Outer().function();
}
}
求明白的人指点指点。。。。。
作者:
Eagle
时间:
2014-11-22 07:20
AbsDmeo d = new AbsDemo()
{
void show()
{
System.out.println("x===="+x);
}
void abc()
{
System.out.println("haha");
}
};
//例如正常的创建对象语句:
Demo d = new Demo();
既然称之为内部类,就在创建对象的内部扩展的,所以分号需要保留。
Demo d = new Demo(){方法};//只是添加了内容而已,其他的不变
而且,如果内部类中只有一个函数,可以不用定义变量名称,直接在大括号后面跟上.函数名()就可以了。
例如:
new AbsDemo()
{
void show()
{
System.out.println("x===="+x);
}
}.show();
其实匿名内部类就是一个匿名子类对象。可以理解为带内容的对象!!!!!!
不知道楼主是否明白?
作者:
叫我小强
时间:
2014-11-22 09:12
恩 明白了!!非常感谢!
作者:
qq623324733
时间:
2014-11-27 06:42
太神奇了。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2