在JAVA中,什么是面向对象?这个是面想对象么?如果不是,该怎么改?

来源:百度知道 编辑:UC知道 时间:2024/06/04 03:54:02
public class AA extends Thread{
String s;

public void run(){
s = Thread.currentThread().getName();
}
public static void main(String[] args){
for(int i = 0; i < 100; i++){
AA a = new AA();
a.setName("售票窗口一:正在卖的票的编号是:");
a.start();

AA b = new AA();
b.setName("售票窗口一:正在卖的票的编号是:");
b.start();

AA c = new AA();
c.setName("售票窗口一:正在卖的票的编号是:");
c.start();
System.out.println(getS()+i+"");
}
}
public String getS(){
return s;
}
}
这是学线程的例子,三个人同时售票,显示当前售票员卖出第几张票。
如果可以的话,请举例说明。非常感谢!

首先你的程序创建了4个对象,一个String对象,3个AA对象。
只要你用类的实例就是面向对象的。所以说你的程序是面向对象的,但是你的运用不对。给人的感觉就是不知道你在做什么。
看出来你是想要卖票,打印出票的编号,但是你根本就没有定义一个票的变量。而且你new了3个对象,他们应该是自己卖自己的,就好像3个人卖票,但是这些票是属于他们各自公司的而不是一个公司的。如果你想让三个营业员卖一个公司的票,你就应该创建一个公司(new一个AA对象)。然后让三个营业员去卖(启动3个线程)。
如AA a=new AA();
new Thread(a).start();
new Thread(a).start();
new Thread(a).start();
对象是什么?
按照你的程序可以理解为类AA是一个售票大厅,new一个AA对象就是创建一个售票大厅,你new了3个对象就是创建3个售票大厅。
关于对象的问题很难用一两句话说明白,还是需要自己去理解。

这个程序相当简单如下:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class AA implements Runnable{
String str="";//锁旗标
int ticket=20;//票号
public static void main(String[] args) {
AA a=new AA();

Thread t1=new Thread(a);
t1.setName("1号窗口");
t1.start();
Thread t2=new Thread(a);
t2.setName("2号窗口");
t2.start();