从java中的另一个类调用另一个函数

时间:2015-03-24 20:05:56

标签: java oop methods method-call

我是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 (){



    }

我希望在这里调用函数

2 个答案:

答案 0 :(得分: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(); 

      }
  }

希望它会有所帮助 感谢。

答案 1 :(得分:1)

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

因此,要么使用MyClass instance = new MyClass(); instance.SessionTracker(); 运算符实例化第一个类的实例,并在该实例上调用该方法:

static

或者通过在返回类型void之前添加MyClass.SessionTracker(); 关键字并在类上调用方法来将方法声明为静态,但是您不能在方法中使用非静态字段:< / p>

{{1}}

PS:

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

方法的名称应以小写字母

开头