2016-04-05 2 views
0

Я создал метод, называемый calRoomCharges(int cusID) в классе public class transactions extends javax.swing.JFrameметоды импорта и использования среди разных классов?

Затем я импортировать этот класс в класс под названием public class AddReservation extends javax.swing.JFrame

Я импортировал класс следующим образом.

import myhotel.FrontOffice.transactions; 

эти оба класса находятся в одном проекте.

Но когда я собираюсь позвонить методу calRoomCharges(int cusID) в классе AddReservation, он говорит, что такого метода нет.

Я сделал это в netbeans.

Так что мне нужно импортировать класс и использовать метод, который я создал в другом классе?

здесь метод, который я создал

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

is calRoom Задает статический или нестатический метод? –

+0

да .. пожалуйста, отправьте полный фрагмент кода. Я думаю, вы пытаетесь сделать статический звонок. –

ответ

0

Вы просто должны либо сделать метод статичным или вызвать его через объект

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

и назвать это так:

double roomCharges = transactions.calRoomCharges(cusNo); 

или вызвать его через созданный объект:

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

И хорошая вещь для классов имен с первой заглавной буквы, так что вы хотите иметь класс транзакций

0

У Вас есть 2 возможности вызова метода calRoomCharges:

метод является статический метод, и вы можете позвонить ему через:

transactions.calRoomCharges(123); 

метод является методом объекта, так что вы должны создать объект первого типа:

transactions obj = new transactions(); 

obj.calRoomCharges(123); 
Смежные вопросы