【问题标题】:Calling another function from another class in java从java中的另一个类调用另一个函数
【发布时间】:2023-04-04 13:33:02
【问题描述】:

我是 java 新手,在从类登录调用另一个函数时遇到了一些麻烦,该函数记录会话用户获取登录的日期和时间。我希望在销售类中调用此函数,其中用户名将从数据库表会话中检索

      public void Sessiontracker(){
      int day, month, year;
      int second, minute, hour;
      GregorianCalendar date = new GregorianCalendar();

      day = date.get(Calendar.DAY_OF_MONTH);
      month = date.get(Calendar.MONTH);
      year = date.get(Calendar.YEAR); 

      second = date.get(Calendar.SECOND);
      minute = date.get(Calendar.MINUTE);
      hour = date.get(Calendar.HOUR);

      String TheDate = +day+"/"+(month+1)+"/"+year;
      String TheTime =+hour+" : "+minute+" : "+second;
      try{
         String sql2= "insert into     session(Date,Time,Username)values('"+TheDate+"','"+TheTime+"','"+jTextField1.getText()+"' ) ";
            pst=con.prepareStatement(sql2);
            pst.execute();    
      }catch(SQLException | HeadlessException e){
         JOptionPane.showMessageDialog(null, e); 

    }                         
 }

那是登录类提取

  private void Sessionuser (){



    }

我想在这里调用函数

【问题讨论】:

    标签: java oop methods method-call


    【解决方案1】:

    我不会告诉你如何调用你的函数。但一般情况下,您可以通过关联调用其他类的公共方法。

    假设您有以下 2 个类:
    A 类 -

    public class A{
    
       // some private property
    
       public void methodA(){}
       public static methodStaticA(){} //note methodStaticA() is a static method
    }
    

    和另一个 B 类 -

    public class B{
    
           // some private property
    
           public void methodB(){}
     }  
    

    调用实例方法(非static方法):
    现在从第三个类 C 中,您可以使用关联调用 A 类的 methodA() 和 B 类的 methodB()(称为实例方法) -

    public class C{
    
           // some private property
          private A a;
          private B b;
    
          public void methodC(){
            a.methodA(); //calling methodA() of class A
            b.methodB(); //calling methodB() of class B
          }
      }
    

    调用静态方法:
    A 类有一个静态方法methodStaticA()。在 java 中,我们不必创建 A 的实例来调用 static 方法。从 C 类我们可以这样调用 -

    public class C{
    
          public void anotherMethodC(){
    
             A.methodStaticA(); 
    
          }
      }
    

    希望它会有所帮助。
    谢谢。

    【讨论】:

      【解决方案2】:

      方法要么声明为static,要么不声明。在类上调用静态方法。在类的实例上调用普通方法,也称为对象。

      所以,要么您使用 new 运算符实例化您的第一个类的实例,然后调用该实例上的方法:

      MyClass instance = new MyClass();
      instance.SessionTracker();
      

      或者您通过在返回类型 void 之前添加 static 关键字来声明您的方法为静态并在类上调用该方法,但是您不能在您的方法中使用非静态字段:

      MyClass.SessionTracker();
      

      PS:

      如果执行正在改变对象的状态,Java 开发人员正在谈论方法;和函数,如果执行没有改变对象的状态

      方法名应以小写开头

      【讨论】:

        猜你喜欢
        • 2021-09-09
        • 1970-01-01
        • 2017-08-10
        • 1970-01-01
        • 1970-01-01
        • 2018-07-30
        • 1970-01-01
        • 2016-04-06
        • 2013-08-10
        相关资源
        最近更新 更多