2016-04-05 7 views
0

は、私はその後、私は次のように私はクラスをインポートpublic class AddReservation extends javax.swing.JFrame異なるクラス間でメソッドをインポートして使用しますか?

と呼ばれるクラスにこのクラスをインポートするクラスpublic class transactions extends javax.swing.JFrame

calRoomCharges(int cusID)というメソッドを作成しました。

import myhotel.FrontOffice.transactions; 

これらの両方のクラスは同じプロジェクトにあります。

しかし、私がメソッドをAddReservationクラスで呼び出すときは、そのようなメソッドはないと言います。

私はnetbeansでこれを行いました。

私はクラスをインポートして、別のクラスで作成したメソッドを使用する必要がありますか?

は方法がある:あなたがcalRoomChargesメソッドを呼び出すの2つの可能性を持ってここに

は私が
public double calRoomCharges(int cusId) 
    { 
     double tot=0.0; 

     try 
     { 


      //Get Rates 
      String sql="SELECT nights FROM reservation where cus_id ='"+cusId+"'"; 
      pst=conn.prepareStatement(sql); 
      rs=pst.executeQuery(); 
      int nights = 0; 
       if(!rs.next()) 
       { 
        //handle no result 
       } 
       else 
       { 
        nights = rs.getInt("nights") ; 

       } 




      //Get number of rooms 

      String sql2="SELECT no_of_rooms FROM reservation where cus_id ='"+cusId+"'"; 
      pst=conn.prepareStatement(sql2); 
      rs=pst.executeQuery(); 
      int rooms =0; 

       if(!rs.next()) 
       { 
        //handle no result 
       } 
       else 
       { 
        rooms = rs.getInt("no_of_rooms") ; 

       } 


      //Get rates 

      String sql3="SELECT rates from room_type a,rooms b ,reservation r where a.type=b.type AND b.room_no=r.room_no AND r.cus_id='"+cusId+"' group by r.cus_id"; 
      pst=conn.prepareStatement(sql3); 
      rs=pst.executeQuery(); 
      double roomRates =0.0; 

       if(!rs.next()) 
       { 
        //handle no result 
       } 
       else 
       { 
        roomRates = rs.getDouble("rates") ; 

       } 



      //Calculate room charges 

      tot =roomRates * rooms * nights; 



     } 
     catch(Exception e){} 

     return tot; 
    } 

を作成する方法であり、これは私が

private void EmpnamefieldMouseClicked(java.awt.event.MouseEvent evt) {           

     int cusNo =Integer.parseInt(cusID.getText()); 
     double roomCharges = calRoomCharges(cusNo); 
    }   
+1

を持っていると思いますので、良いことは、最初の大文字で名前のクラスにいる私たちはあなたのコード(だけでなく、メソッドのシグネチャ)を参照してくださいことはできますか?どのように 'calRoomCharges'を呼び出そうとしていますか? –

+0

はcalRoomです静的または非静的メソッドをチャージしますか? –

+0

はい。完全なコードスニペットを入力してください。私は静的な呼び出しをしようとしていると思います。 –

答えて

0

public static double calRoomCharges(int cusId) 
{ 
    // ... 
} 

とそのようにそれを呼び出す:

double roomCharges = transactions.calRoomCharges(cusNo); 

または作成されたオブジェクトを通してそれを呼び出す:

transactions t = new transactions(); 
double roomCharges = t.calRoomCharges(cusNo); 

そして、あなたはクラスの取引

0

それを呼ばれる方法です静的メソッドを呼び出すことができます。

transactions.calRoomCharges(123); 

メソッドは、オブジェクトのメソッドであるため、同様にあなたが最初のオブジェクトを作成する必要があります:あなたは、単に静的メソッドを作るか、またはオブジェクトを介して、それを呼び出すためにどちらか持って

transactions obj = new transactions(); 

obj.calRoomCharges(123); 
関連する問題