繁体   English   中英

在不同类之间导入和使用方法?

[英]import and use methods among different classes?

我在public class transactions extends javax.swing.JFrame创建了一个称为calRoomCharges(int cusID)public class transactions extends javax.swing.JFrame

然后,将此类导入到名为public class AddReservation extends javax.swing.JFrame

我按如下方式导入了该类。

import myhotel.FrontOffice.transactions;

这两个类都在同一个项目中。

但是,当我要在AddReservation类中调用方法calRoomCharges(int cusID) ,它说没有这种方法。

我在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);
    }           

您有两种调用calRoomCharges方法的可能性:

该方法是静态方法,您可以通过以下方式调用它:

transactions.calRoomCharges(123);

该方法是一个对象方法,因此您必须首先创建一个对象,例如:

transactions obj = new transactions();

obj.calRoomCharges(123);

您只需要使方法静态或通过对象调用即可

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

并这样称呼它:

double roomCharges = transactions.calRoomCharges(cusNo);

或通过创建的对象调用它:

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

一件好事是用首字母大写来命名班级,这样您就可以进行班级交易

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM