黑马程序员技术交流社区
标题:
菜鸟请教:大家给我看一下这是什么用法?
[打印本页]
作者:
黄晓天
时间:
2011-10-25 10:52
标题:
菜鸟请教:大家给我看一下这是什么用法?
package com.xiaotian.heima;
/**
* 编写程序求的1-100之间的数字和
* @author xiaotian
*
*/
public class TestSum {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
int sum=0;
for(int i=1;i<=100;i++){
sum+=i;
}
System.out.println("1+2+3+4+......100="+sum);
*/
TestSum ts=new TestSum(){
public int getSum(){
int sum=0;
for(int i=1;i<=100;i++){
sum+=i;
}
return sum;
}
};
System.out.println("sum="+sum);
}
}
问题:
TestSum ts=new TestSum( ){ };
这是什么用法,要详细点的,谢谢了!
该贴已经同步到
黄晓天的微博
作者:
姚志华
时间:
2011-10-25 11:09
你这写的有问题呀,应该是这样吧
public class TestSum {
/**
* @param args
*/
public static void main(String[] args) {
int sum=new TestSum().getSum();
System.out.println("和为:"+sum);
}
public int getSum(){
int sum=0;
for(int i=1;i<=100;i++){
sum+=i;
}
return sum;
}
}
你定义的那个局部变量SUM怎么输出的,不会报错吗
作者:
杨杰
时间:
2011-10-25 12:01
2楼的我见过,楼主的,我还真么见过。
方法应该是分离的,等着被调用。如果直接在变量后面写,我感觉那就不是面向对象思想了,那样的话还不如你注释掉得那部分呢
作者:
宁超
时间:
2011-10-25 12:04
你的代码有问题的。我猜你问的应该是匿名内部类吧。
http://blog.csdn.net/ilosing/article/details/6850384
我的笔记有写。你可以去看下。
作者:
黄晓天
时间:
2011-10-25 12:52
嗯,谢谢了,发问题发错了,不过这不是我的初衷,我想问一下
TestSum ts=new TestSum( ){ };
这是什么用法,要详细点的,请举例说明,谢谢了!
作者:
黄晓天
时间:
2011-10-25 13:52
{}里面写匿名内部类的重写方法吗?
作者:
姚志华
时间:
2011-10-25 14:50
黄晓天 发表于 2011-10-25 13:52
{}里面写匿名内部类的重写方法吗?
对,理解正确,之所以写成这样是因为你要用这个内部类不止一次,而且返回的还是个TestSum所以把它赋给了TS,如果只用一次就直接这样写就可以
new TestSum( ){
//复写的方法
};
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2