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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史卜坤 中级黑马   /  2012-7-5 12:33  /  1510 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Hello extends Thread {  
   public void run() {     
    for (int i = 0; i < 7; i++) {     
        if (count > 0) {      
          System.out.println("count= " + count--);           
  }   
   }   
}

public static void main(String[] args) {     
    hello h1 = new hello();   
     hello h2 = new hello();        
hello h3 = new hello();      
   h1.start();   
     h2.start();        
h3.start();     
}   
   private int count = 5;
}
我要问的问题是为什么最后定义一个private int count = 5;    还有一个问题是为什么要把主函数Main 放在类Hello 中  可以把主函数拿到类Hello外吗 谢谢;

5 个回复

倒序浏览
private是修饰符,只限定本类使用。
主函数是一个程序的接口,能保证该程序的独立运行,是定义在类中的一个独立的代码。
        这个独立代码的名字就是main。所以要放在里面,放在外面的话,程序运行找不到接口,此程序也就运行不了!
这是我的理解,希望对楼主有所帮助~
回复 使用道具 举报
楼主的代码里面Hello首字母都没大写
主函数定义在这个类里是可以的,也可以单独放一个类里
private int count = 5;
可以放到最前面去,作用于整个类
回复 使用道具 举报
class Hello extends Thread {  
   private int count = 5;

   public void run() {     
    for (int i = 0; i < 7; i++) {     
        if (count > 0)      
          System.out.println("count= " + count--);           
      }   
   }

public static void main(String[] args) {     
    hello h1 = new hello();   
     hello h2 = new hello();        
hello h3 = new hello();      
   h1.start();   
     h2.start();        
    h3.start();     
  }   
}
这样看可以更清楚一点,count是给run用的。
主函数可以不在这个类里,但那要重新写一个类里,而且开启线程前还要创建对象,在这个代码里反而更麻烦
回复 使用道具 举报
class Hello extends Thread
{  
    private int count = 5;//这只是给count进行初始化的,定义在最上面和最下面的效果一样,不过一般不建议定义在下面,定义在最上面比较好
    public void run()
   {     
      for (int i = 0; i < 7; i++)
      {     
          if (count > 0)
         {      
               System.out.println(Thread.currentThread().getName()+"...count= " + count--); //加上Thread.currentThread().getName()+"...可以看到是哪个        
        }                                                                                                                                  //线程在调用run方法,这样更加直观
    }   
}
/*
public static void main(String[] args)
{     
  Hello h1 = new Hello();   //你那的H全是小写的,要该成大写,不然编译失败
  Hello h2 = new Hello();        
  Hello h3 = new Hello();      
  h1.start();   
  h2.start();        
  h3.start();     
}
*/
}
class Test//上面注释部分的主函数可以单独放在这个类中,程序一样运行
{
   public static void main(String[] args)
   {     
      Hello h1 = new Hello();   
      Hello h2 = new Hello();        
      Hello h3 = new Hello();      
      h1.start();   
      h2.start();        
      h3.start();     
   }
}

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 很细心,加油!!!

查看全部评分

回复 使用道具 举报
class Hello extends Thread {
       
        private int count = 5;//初始化后在整个类中都可以调用,这里count 在run方法中调用

        public void run() {
                for (int i = 0; i < 7; i++) {
                        if (count > 0) {
                                System.out.println("count= " + count--);
                        }
                }
        }

        public static void main(String[] args) {
                Hello h1 = new Hello(); //你那的H全是小写的,要该成大写,不然编译失败
                Hello h2 = new Hello();
                Hello h3 = new Hello();
                h1.start();
                h2.start();
                h3.start();
        }

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