2015-07-02 95 views
0

我想弄清楚如何從LinearEquation類中獲取一個變量到我的Main類。我一直在試圖複製教練筆記的結果,但它一直沒有奏效。我已經看到了一些與我的教練做過的例子,但我仍然不想工作。無法訪問來自不同Java類的變量

現在我的目標很簡單,我只是想在Linear Equation類中聲明Double a = 1並將它返回到Main類並將其輸出到那裏。

Main Class

LinearEquation Class

回答

0

我看到幾個問題。

  1. (由@KishoreKumarKorada提到的)是你的LinearEquation構造期待多個參數

    LinearEquation le = new LinearEquation(1,2,3,4,5,6);

  2. 當你打電話,你需要包括括號中的方法

    System.out.print(le.getA());

  3. 您的getA方法應該是指this.a而不是簡單地a

    public double getA() { this.a = 1; return this.a; }

0

在你LinearEquation類,你沒有默認的構造函數,這樣你就不會允許調用構造函數不傳遞參數。如果你通過參數,你的問題將被解決:)

public class Main { 
    public static void main(String[] args) { 

     LinearEquation le = new LinearEquation(here pass parameters to 
                initialize values); 

     System.out.print(le.getA()); 

    } 
} 
+0

哦,我的筆記只顯示了一個參數,所以我想我只需要一個參數而不是六個參數。謝謝您的幫助! –

0

更改您的Main類此。

public class Main { 
    public static void main(String[] args) { 
     LinearEquation le = new LinearEquation(1, 2, 3, 4, 5, 6); 
     System.out.println(le.getA()); 
    } 
} 

在執行時,這是輸出:

1.0 

爲什麼你需要做到這一點?

因爲在LinearEquation中,只有一個構造函數,它需要6個參數的數據類型double

必須通過這些參數

OR

如果你不想傳遞任何參數,然後添加一個默認的構造LinearEquation

1

雙人或雙?第一個是Wrapper類,另一個是原始類型。我注意到你的LinearEquation類沒有setter方法。因爲你聲明你的類變量是私有的,所以你最好有setter方法。一旦你聲明

public void setA(double a) 
{ 
    this.a = a; 
} 

然後,您可以通過值1到le.setA參數(1)主要方法如下:

le.setA(1); 

然後你就可以在你的主要方法返回值1如下所示:

le.getA(); 

否則,您在LinearEquation類中有6個參數的構造函數。所以,你可以指定當創建一個對象文件中的值:

LinearEquation le = new LinearEquation(1,2,3,4,5,6); 
System.out.println(le.getA()); 

而且,你寫到le.getA沒有括號,我不認爲它的工作原理!

+0

double * 我正在追蹤這本書的一個例子,它沒有提到setters。只有獲得者。但我不確定是否應該添加setter。它還提到變量a-f是私有的。 數字(1-6),他們得到任何東西分配給他們?例如, ,「double a = 1」,「double b = 2」等等? –

+0

我不太確定你的意思,但是如果你想要double a = 1,你必須爲你的字段double a賦值1,如下setA(1);和System.out.println(getA());是將值1返回到屏幕。否則,在main中,創建一個帶有參數的新對象LinearEquation,併爲其分配值,因爲您在LinearEquation類中具有6個參數的構造函數,並且您在main中調用getA(),getB()等等。 http://beginnersbook.com/2013/05/encapsulation-in-java/ –