黑马程序员技术交流社区
标题:
关于匿名内部类
[打印本页]
作者:
宋耀冬
时间:
2013-3-23 17:15
标题:
关于匿名内部类
本帖最后由 宋耀冬 于 2013-3-25 19:32 编辑
interface Inter {
void method();
}
class Test {
//补足代码,通过匿名内部类。
/*
static class Inner implements Inter {
public void method() {
System.out.println("method run");
}
}
*/
static Inter function(){
return new Inter(){
public void method() {
System.out.println("method run");
}
} //这一行编译报错,提示需要 " ; " 过不懂,为什么?
}
}
class InnerClassTest {
public static void main(String[] args) {
Test.function().method();
}
}
作者:
刘凯
时间:
2013-3-23 17:31
return new Inter(){
public void method() {
System.out.println("method run");
}
} //这一行编译报错,提示需要 " ; " 过不懂,为什么?
因为你这个是new 是在建立一个内部类的一个对象,而不是简单的在定义一个类,建立对象当然是个得;结尾了
作者:
全超
时间:
2013-3-23 19:07
return new Inter(){ //这里相当于是一个返回语句,返回的是一个带内容的比较胖的对象,但还可以算是一条语句就要有;结尾。
public void method() {
System.out.println("method run");
}
}
作者:
葛晓红
时间:
2013-3-23 22:05
正常情况下,创建一个对象的格式是“类名 变量=new 类名();”匿名内部类就是附带内容对象,内容放在{}里,后面必须跟个“;”号,跟正常创建对象的格式一样,分号表示一个语句的结束。
作者:
fclovejyy
时间:
2013-3-23 22:53
return ... ;这是一个完整的语句,右边是个对象,语句的结束得有“;”
作者:
陆旭东
时间:
2013-3-25 19:31
static Inter function(){
return new Inter(){
public void method() {
System.out.println("method run");
}
} //这一行编译报错,提示需要 " ; " 过不懂,为什么?//这个其实就是你的function()函数中的一整条return语句,你右面自然要加上“;”
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2