2012-09-05 62 views
1

那麼你將如何使用一個完全不同的Java文件,但在同一個包是否有可能在一個Java文件聲明數組,並利用它們在不同的Java文件,如果他們都在同一個包

public static void main (int[] args) 
{ 
int [] HotDog = {18,8,10,0}; 
int [] ToastedChicken = {25,8,17,0}; 
int [] ToastedSteak = {30,8,22,0}; 
int [] ToastedEggT= {20,8,6,6}; 
int [] ToastedSteakE={36,8,22,6}; 
int [] ChickenRoll = {25,8,17,0}; 
int [] SteakRoll = {30,8,22,0}; 
int [] EggTomato = {20,8,6,6}; 
int [] CheeseTomato = {20,8,6,6}; 
int [] steakEgg = {36,8,22,6};` 

IE這裏

if (contents == "Hot Dog") 

{jLabel2.setText(HotDog[2]); } 
+1

您的問題不清楚。你想在哪裏使用什麼?另外,請注意,您可能正在尋找'contents.equals(「Hot Dog」)'而不是'==' – amit

回答

5

你需要讓他們靜。例如:

final class MyConstants { 
    static final int[] HotDog = {18, 8, 10, 0}; 
    static final int[] ToastedChicken = {25, 8, 17, 0}; 
    static final int[] ToastedSteak = {30, 8, 22, 0}; 
    static final int[] ToastedEggT = {20, 8, 6, 6}; 
    static final int[] ToastedSteakE ={36, 8, 22, 6}; 
    static final int[] ChickenRoll = {25, 8, 17, 0}; 
    static final int[] SteakRoll = {30, 8, 22, 0}; 
    static final int[] EggTomato = {20, 8, 6, 6}; 
    static final int[] CheeseTomato = {20, 8, 6, 6}; 
    static final int[] SteakEgg = {36, 8, 22, 6}; 

    private MyConstants() { 
     // Prevents users of this class from instantiating a useless instance of 
     // this class, since all members are static. 
    } 
} 

然後你就可以在任何類在同一個包中使用它們,如:

if (contents.equals("Hot Dog")) { 
    jLabel2.setText(MyConstants.HotDog[2]); 
} 
+0

另一個重要的點是它們已經從'main'方法中移除。 –

+0

請注意,雖然在這裏包受保護的可訪問性正常 - 但很少出現這種情況。 – amit

+1

對於這個問題,MyConstants類也可以具有包訪問權限(除非它包含其他包中需要的其他內容)。 –

0

你的陣列是目前本地的方法爲主。如果您將它們移到主方法之外(就像它們一樣),那麼其他類將可以看到其他類與包方式訪問相同的程序包。你需要有一個對這個類的引用(除非你讓它們是靜態的)。在下面的示例中,我打電話給類X

int [] HotDog = {18,8,10,0}; 
int [] ToastedChicken = {25,8,17,0}; 
int [] ToastedSteak = {30,8,22,0}; 
int [] ToastedEggT= {20,8,6,6}; 
int [] ToastedSteakE={36,8,22,6}; 
int [] ChickenRoll = {25,8,17,0}; 
int [] SteakRoll = {30,8,22,0}; 
int [] EggTomato = {20,8,6,6}; 
int [] CheeseTomato = {20,8,6,6}; 
int [] steakEgg = {36,8,22,6};` 

public static void main (int[] args) 
{ 
    jLabel2.setText(new X().HotDog[2]); //will return 10 
} 

此外,它是java在camelCase中命名變量的comon實踐。例如chickenRoll

+0

謝謝你所有的答案,他們是真的很有幫助:)讚賞它 – nmu

+0

@ user1649917如果你找到有用的答案,請upvote他們並選擇一個解決你的問題。 – RNJ

1

,我會盡量讓那些Arraystatic,所以所有的類試圖訪問這些陣列得到相同的陣列...

我也用Singleton Principle with Composition這裏...但是那爲此過度殺傷..

public class Test{ 
static int [] HotDog = {18,8,10,0}; 
static int [] ToastedChicken = {25,8,17,0}; 
static int [] ToastedSteak = {30,8,22,0}; 
static int [] ToastedEggT= {20,8,6,6}; 
static int [] ToastedSteakE={36,8,22,6}; 
static int [] ChickenRoll = {25,8,17,0}; 
static int [] SteakRoll = {30,8,22,0}; 
static int [] EggTomato = {20,8,6,6}; 
static int [] CheeseTomato = {20,8,6,6}; 
static int [] steakEgg = {36,8,22,6}; 

} 

public class AccessIt{ 


Test.HotDog; 


} 
相關問題