2015-03-24 2 views
0

Я новичок в java, столкнувшись с проблемой вызова другой функции из входа в класс, который записывает пользователя сеанса, который получает дату и время входа. Я бы хотел позвонить эта функция в классе продаж, где имена пользователей будут извлечены из таблицы базы данных сессииВызов другой функции из другого класса в 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

Я не собираюсь рассказывать, как вы можете назвать свою функцию. Но в целом вы можете вызвать общедоступный метод класса путем ассоциации.

Предположим, у вас есть следующие 2 класса:
класса А -

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() класса A и methodB() класса B (который известен как методы экземпляра) нами ИНГ ассоциация -

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 
     } 
    } 

Вызов статического метода:
класса А имеют статический метод methodStaticA(). В java нам не нужно создавать экземпляр A для вызова этого метода static. Из категории C мы можем просто позвонить по этому адресу -

public class C{ 

     public void anotherMethodC(){ 

     A.methodStaticA(); 

     } 
    } 

Надеюсь, это поможет.
Спасибо.

1

Метод либо объявлен как static, либо нет. Статический метод вызывается в классе. Нормальный метод вызывается в экземпляре класса, также называемого объектом.

Итак, либо вы создается экземпляр первого класса с оператором new и вызвать метод этого экземпляра:

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

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

MyClass.SessionTracker(); 

PS:

Java-разработчик говорит о методах, если выполнение изменяет состояние объектов; и функции, если исполнение не меняет состояние объектов

имя метода должно начинаться с нижнего регистра

Смежные вопросы