2017-10-19 80 views
-1

我個人目前不在我的個人電腦上,所以我無法分享我的代碼,但我可以嘗試重寫它的一個簡單部分。如何在java中引用另一個類中的變量?

public class whatever() 
{ 
    public int test; 

    public String one = "placeholder" //to be filled later 
    public static void main(String[] args) 
    { 
    } 
} 

,並在另一個類,

public class test1() 
{ 
    public static void main(String[] args) 
    { 
     test = 1; 
    } 
} 

在課堂上test1,我收到一個錯誤說測試是不確定的。

+0

如果您不遵循以大寫字母「public class Whatever」啓動類名的慣例,Java開發人員會感到困惑。你的IDE可能會給你一個警告。 – slim

+0

是的 - 感謝編輯。由於某種原因,我的IDE上已經有一個非大寫的測試類: - | – notyou

回答

0

你不能像這樣共享變量 - 一個班級不會以你提出的方式知道變量。

移動變量的一種方法是,您可以首先在主類中聲明它。

public static void main(String[] args) { 
    String s = "test"; 
} 

然後編寫一個類,該類有一個接受參數以匹配變量的方法。

public class OtherClass { 

    public void methodTest(String s) { 
     //code goes here 
    } 
} 

在原來的類,你需要實例化新類

OtherClass oc = new OtherClass(); 

然後可以調用該方法,並傳入需要的參數

oc.methodTest(s); 

Main類現在看起來像:

public static void main(String[] args) { 
     String s = "test"; 
     otherClass oc = new OtherClass(); 
     oc.methodTest(s); 
    } 

等各類看起來像(用一個簡單的print語句):

public class OtherClass { 

    public void methodTest(String s) { 
     System.out.println(s); 
    } 
} 

,這將打印的s

的價值,我建議採取一些在線教程初學者,如thisthis

+0

謝謝!我的開發者朋友花了一個小時試圖弄清楚這一點,但現在我可以把它們一個! – GGSammy

+0

@GGSammy沒問題。如果您對答案感到滿意,請隨時接受和/或點贊,這樣可以幫助未來的讀者。 – notyou

0

我能夠通過導入其他類來做到這一點。這是我的第一類:

import package1.SecondClass; 

public class FirstClass { 
    public static void main(String[] args) { 
     int i = SecondClass.varToRef; 
     System.out.println(i); 
    } 
} 

它打印出來8.我的第二類:

package package1; 

public class SecondClass { 
    public static int varToRef = 8; 
    public static void main(String[] args) { 

    } 
} 

我只能引用該變量時,它是主要的方法,製造之外,基本上參照像SecondClass的公共靜態字段。

+0

你的第二個軟件包沒有意義,是否需要類名?並沒有必要導入它,因爲它在相同的包... – MCMastery

+0

@MCMastery FirstClass是在一個默認包,所以我不得不導入SecondClass,因爲他們不在同一個包。這些類被稱爲FirstClass和SecondClass。 –

相關問題