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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王小刚 中级黑马   /  2012-5-7 21:16  /  1487 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test extends Thread{
    public void start{
          for(int i = 0;i<10;i++){
                System.out.println("i="+i);
      }
   }
     public static void main(String[] args){
           Test test = new Test();
           test.run();
    }
}
求输出结果..
重点是解释下原因...

点评

看到代码、我忍不住笑了,你懂的  发表于 2012-5-8 00:37
你启动线程 和 复写Thread方法两个刚好搞反了 大哥  发表于 2012-5-7 21:28

5 个回复

正序浏览
public class Test extends Thread{
    public void start{
          for(int i = 0;i<10;i++){
                System.out.println("i="+i);
      }
   }
     public static void main(String[] args){
           Test test = new Test();
           test.run();
    }
}


看了半天,先不说程序的对错吧,估摸着楼主是把线程中的run()方法和start()方法搞混了吧,run()方法是用来写入你要在线程中执行的内容,而start()是你在创建完一个线程后,启动线程的方式。
回复 使用道具 举报
public class Test extends Thread{
    public void start{//复写run方法,此处错误
          for(int i = 0;i<10;i++){
                System.out.println("i="+i);
      }
   }
     public static void main(String[] args){
           Test test = new Test();
           test.run();//此处调用start();方法开启线程test.run();
    }
}
回复 使用道具 举报
楼主的代码有点小问题就  public void start{没有加(),应是下面那样的:
package com.baidu.Map;
public class Test extends Thread{
    public void start(){
          for(int i = 0;i<10;i++){
                System.out.println("i="+i);
      }
   }
     public static void main(String[] args){
           Test test = new Test();
           test.run();
    }
}
程序的运行结果是没有结果,原因继承了Thread类却没重写run方法。继承的run方法只是一个空方法,所以在运行时,在控制台上什么看不到。
回复 使用道具 举报
结果为【空】
首先你的start()方法就没有写对哟!后面有括号的
其次非静态方法没有对象调用不执行
你是想了解多线程吗?
多线程的创建方式有两种:
一:继承Thread类重写里面的run()方法,创建自定义类对象,并调用run()方法开启线程;
二:实现Runnable接口,重写run()方法,将自定义类的对象传入Thread类的构造方法中,用Thread类的引用调用run()方法
回复 使用道具 举报
楼主  你的代码是错的  没结果  编译不过  
public void start后面少了括号。加上括号以后的运行结果是没有任何输出。
然后  你是在学多线程吧    Thread的子类中复写的是run方法,然后主类中才用start()方法来启用线程  改了下你的代码

package com.net;

public class Test4 extends Thread{
    public void run(){
          for(int i = 0;i<10;i++){
                System.out.println("i="+i);
      }
   }
     public static void main(String[] args){
           Test4 test = new Test4();
           test.start();
    }
}
这样运行的结果是i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

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