A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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( ){ };这是什么用法,要详细点的,谢谢了!


该贴已经同步到 黄晓天的微博

6 个回复

倒序浏览
你这写的有问题呀,应该是这样吧
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:55
藤椅
2楼的我见过,楼主的,我还真么见过。
方法应该是分离的,等着被调用。如果直接在变量后面写,我感觉那就不是面向对象思想了,那样的话还不如你注释掉得那部分呢
回复 使用道具 举报
宁超 黑马帝 2011-10-25 12:04:35
板凳

回帖奖励 +1

你的代码有问题的。我猜你问的应该是匿名内部类吧。
http://blog.csdn.net/ilosing/article/details/6850384我的笔记有写。你可以去看下。
回复 使用道具 举报
嗯,谢谢了,发问题发错了,不过这不是我的初衷,我想问一下TestSum ts=new TestSum( ){ };这是什么用法,要详细点的,请举例说明,谢谢了!
回复 使用道具 举报
{}里面写匿名内部类的重写方法吗?
回复 使用道具 举报
姚志华 黑马帝 2011-10-25 14:50:37
7#
黄晓天 发表于 2011-10-25 13:52
{}里面写匿名内部类的重写方法吗?

对,理解正确,之所以写成这样是因为你要用这个内部类不止一次,而且返回的还是个TestSum所以把它赋给了TS,如果只用一次就直接这样写就可以
new TestSum( ){
//复写的方法
};

评分

参与人数 1技术分 +2 收起 理由
李印东老师 + 2 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马