【发布时间】:2012-04-16 10:56:51
【问题描述】:
我是 java 编码的新手...我正在尝试实现一个说明多任务处理的程序。在编程时我被一个小任务打动了,我无法找到解决方法。得到在细节方面,我有 3 个类,如果我单独声明变量,我可以成功完成我的任务,但我想要这样一种要求,我想在另一个类中使用一个类的变量。即使我是将变量声明为公共,它会引发异常/错误。这是我的实现代码,供专家们清楚地理解!
class TrainReservation extends Thread
{
public int trainAvailability=1, bearthAvailability=1;
int noOfSeats;
TrainReservation(int noOfSeats)
{
this.noOfSeats=noOfSeats;
}
public void run()
{
if((trainAvailability >= noOfSeats) && (bearthAvailability >= noOfSeats))
{
System.out.println("seat is reserved");
trainAvailability=trainAvailability-noOfSeats;
bearthAvailability=bearthAvailability-noOfSeats;
System.out.println(trainAvailability);
}
else
System.out.println("no seats available");
}
}
class TrainReservationCancel extends Thread
{
int trainAvailability;
trainAvailability=tr.trainAvailability;
int noOfSeats;
TrainReservationCancel(int noOfSeats)
{
this.noOfSeats=noOfSeats;
}
public void run()
{
if(noOfSeats!=0)
{
bearthAvailability=bearthAvailability+noOfSeats;
trainAvailability=trainAvailability+noOfSeats;
System.out.println(bearthAvailability);
}
}
}
class MainClass
{
public static void main(String[] args)
{
TrainReservation tr=new TrainReservation(2);
TrainReservationCancel tr1=new TrainReservationCancel(1);
Thread obj=new Thread(tr);
tr.start();
Thread obj1= new Thread(tr1);
tr1.start();
}
}
这是错误所在的屏幕截图
任何帮助都会对我有很大帮助并感激不尽。
提前谢谢大家:)
【问题讨论】:
-
抛出了什么异常/错误,具体在哪里?请添加完整的堆栈跟踪。
-
trainAvailability=tr.trainAvailability;这是什么tr? -
@shan 它是火车可用性类的对象
-
@PéterTörök 请查看已编辑的问题(帖子),我已放置错误屏幕截图,谢谢
-
@Eshwar,但我在您的班级中看不到
tr变量。您应该在TrainReservationCancel类中声明它。MainClass中有一个tr变量。你应该把它传递给TrainReservationCancel类。