黑马程序员技术交流社区
标题:
关于多线程的问题
[打印本页]
作者:
史卜坤
时间:
2012-7-5 12:33
标题:
关于多线程的问题
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外吗 谢谢;
作者:
曹魁
时间:
2012-7-5 12:46
private是修饰符,只限定本类使用。
主函数是一个程序的接口,能保证该程序的独立运行,是定义在类中的一个独立的代码。
这个独立代码的名字就是main。所以要放在里面,放在外面的话,程序运行找不到接口,此程序也就运行不了!
这是我的理解,希望对楼主有所帮助~
作者:
杨锦
时间:
2012-7-5 12:51
楼主的代码里面Hello首字母都没大写
主函数定义在这个类里是可以的,也可以单独放一个类里
private int count = 5;
可以放到最前面去,作用于整个类
作者:
陆强强
时间:
2012-7-5 12:57
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用的。
主函数可以不在这个类里,但那要重新写一个类里,而且开启线程前还要创建对象,在这个代码里反而更麻烦
作者:
王冰
时间:
2012-7-5 13:00
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();
}
}
作者:
张华廷
时间:
2012-7-5 15:31
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();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2