Как передать метод из другого класса в другой класс в Java? - PullRequest
1 голос
/ 09 августа 2010

2 файла с именем:

  1. AnnuityDueGUI.java
  2. AnnuityDueResultGUI.java

В AnnuityDueGUI.java есть следующий метод:

=============

public double calculateFADGUI(){
        //FVA = A{[(1+i)^n – 1] / i} (1+i)
        String amountStr = amount.getText() ;  //convert string to double
        dAmount = Double.parseDouble(amountStr) ;
        String iStr = iText.getText() ;
        dInterest = Double.parseDouble(iStr) ;
        String periodStr = period.getText() ;
        dPeriod = Double.parseDouble(periodStr) ;
        iPeriod = (int)dPeriod ;
        due = new Annuity(dAmount, dInterest, iPeriod) ;
        System.out.println(due.calculateFAD()) ;
        return due.calculateFAD() ;   //calculateFAD() is under Annuity.java
    }

===============

В AnnuityDueResultGUI.java как получить результат из метода, который я описал выше - оба класса находятся в одном пакете "GUI". Я также сделал import AnnuityDueGUI.* ;

Но все еще не знаю, как получить результат из AnnuityDueGUI.java и отобразить его в AnnuityDueResultGUI.java.

Пожалуйста, помогите и спасибо заранее.

Ответы [ 3 ]

6 голосов
/ 09 августа 2010

Вам понадобится ссылка на объект AnnuityDueGUI в AnnuityDueResultGUI. Так например

AnnuityDueGUI adg = new AnnuityDueGUI()
double result = adg.calculateFADGUI()

UPDATE

Также, если вы уже строите AnnuityDueGUI где-то еще, вы можете просто передать ссылку на AnnuityDueResultGUI

public AnnuityDueResultGui(AnnuityDueGUI adg) {
    this.adg = adg;
}

private void otherFunc () {
    double results = this.adg.calculateFADGUI()
}
0 голосов
/ 09 августа 2010

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

public class AnnuityDueResultGUI {
  private AnnuityDueGUI parent;

  public AnnuityDueResultGUI(AnnuityDueGUI parent) {
    this.parent = parent;
  }

  public void somemethod() {
    parent.calculateFADGUI();  // now you can access a method from a AnnuityDueGUI  instance
  }
}

и где-то внутри метод AnnuityDueGUI:

// ...
AnnuityDueResultGUI resultGUI = new AnnuityDueResultGUI(this);
// ...
0 голосов
/ 09 августа 2010
class AnnuityDueGUI {

public double calculateFADGUI(){
        //FVA = A{[(1+i)^n – 1] / i} (1+i)
        String amountStr = amount.getText() ;  //convert string to double
        dAmount = Double.parseDouble(amountStr) ;
        String iStr = iText.getText() ;
        dInterest = Double.parseDouble(iStr) ;
        String periodStr = period.getText() ;
        dPeriod = Double.parseDouble(periodStr) ;
        iPeriod = (int)dPeriod ;
        due = new Annuity(dAmount, dInterest, iPeriod) ;
        System.out.println(due.calculateFAD()) ;
        return due.calculateFAD() ;   //calculateFAD() is under Annuity.java
    }

//...other code
}

class AnnuityDueResultGUI {

AnnuityDueGUI var = new AnnuityDueGUI();
double result = var.calculateFADGUI();
//other code
}
...