谁帮我解答下这个JAVA例题的不懂的地方

来源:百度知道 编辑:UC知道 时间:2024/07/07 22:27:21
package com.wsy;

public class Simple extends Thread{

/**
* @param args
*/
private boolean active;
private String mask;
private static int count=0;
Simple(){
this('t');
}
Simple(char maskChar){
setActive(true);
mask=" "+(count++)+maskChar;
start();

}
public void setActive(boolean active){
this.active=active;
}
public boolean isActive(){
return active;
}
public String toString(){
return "线程名称为"+getName()+":"+mask;
}
public void run(){
int i=0;
while(isActive()){
System.out.println(this);
try{
Thread.sleep(50);
}catch(Exception e){
e.printStackTrace();
}
i++;
System.out.println("i"+i);
if(i==10){
setActive(false);
}
}

}
public static v

1.实例化后会调用simple的构造方法Simple(){
this('t');
}

每个类都有一个到两个构造方法啊,这样创建对象时候,就知道做什么了
如果没有自己写,系统会给你默认一个,确保你的实例构造成功

2.this('t'); 就是Simple(t)的调用
他是让找这个类里面的有这种参数形式的方法simple

3这个start()方法是simple通过继承thread方法得到的。
定义的时候说明了
一个类继承了另一个类,就自动拥有了那个类的所有方法哦
这是面向对象的魅力所在!可以节省很多代码。
至于start方法,你只能去看thread类了=。=

4这个比较难懂,this的问题实在是让人困惑呵呵,this这里是表示这个对象实例。也就是一个实实在在的线程。对象怎么print呢?有个规定,是说如果打印的是对象,则自动调用这个对象的tostring方法。你看见public String toString(){
return "线程名称为"+getName()+":"+mask;
}
了么?这里重写了tostring方法,也就是说,把进程信息打印出来的意思

累死了555555不过这些问题都比较深奥了,都接触到面向对象的一些实质问题了,加油啊!!

1.不会运行Simple ,而是运行这个的的构造方法,源代码就是这一段
Simple(){
this('t');
}
2.调用本类的方法,‘t’只是函数的参数,没看到具体什么用;执行的这段代码Simple(char maskChar){
setActive(true);
mask=" "+(count++)+maskChar;
start();

}

3.start()方法是多线程的一个特点,它会调用相应的run()方法
4.this在