2012-04-16 13 views
0

私はjavaでコーディングする初心者です...私はマルチタスクを使用してプログラムを実装しようとしています。プログラミング中に私はできない詳細を知るために、私は3つのクラスを持っています。変数を個別に宣言すれば、私は自分の仕事を成功させることができますが、私は変数を使用したいと思っています。変数をpublicとして宣言していますが、例外/エラーをスローしています。ここには、そこにいる専門家の明確な理解のための実装コードがあります。ここで別のクラスに1つのクラス変数を使用する方法

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(); 
    } 
} 

は、エラーが任意の助けが私のために素晴らしいと高く評価されるだろう

enter image description here

ここでのスクリーンショットです。すべて事前に

おかげで:)

+0

を宣言することになる変数を読み込む場合 は、このクラスで

を宣言されていないTR?完全なスタックトレースを追加してください。 –

+0

'trainAvailability = tr.trainAvailability;'この 'tr'とは何ですか? – shan

+0

@shanその列車利用可能クラスのオブジェクト –

答えて

0

あなたはどのラインを含む知っておくと便利ではありません例外、コンパイルエラーを取得しています。

trを使用していますが、TrainReservationCancelクラスに渡すことはありません。

はTrainReservation

TrainReservationCancel(int noOfSeats, TrainReservation tr) 
{ 
    this.noOfSeats=noOfSeats; 
    this.trainAvailability=tr.trainAvailability; 
} 

とメイン

ところで
TrainReservation tr=new TrainReservation(2); 
TrainReservationCancel tr1=new TrainReservationCancel(1, tr); 

中を取るために、あなたのコンストラクタを変更してみてください:あなたは、あなたのクラスimplements Runnable代わりのextends Thread

+1

と同じですが、TrainReservationCancelでbearthAvailabilityを使用しています。 – giorashc

+0

@peter lawreyしかし、何を実装した後でも、何も私たちのやり方で働いてくれませんでした。 –

+0

「何も私たちのやり方をしなかった」とはどういう意味ですか?同じエラーがあることを意味しますか?新しいエラーがあることを意味しますか?あなたのコードでエラーの残りの部分を修正したが、プログラムがうまくいけば、あなたのプログラムがコンパイルされたということですか? –

0

trainAvailability = tr.trainAvailabilityを作りたいです;あなたがスレッド環境でこれを行うと、あなたも最高の彼らに例外/エラーがスローされ、正確には何等の揮発性

関連する問題