2017-10-19 19 views
-1

私は個人的に自分のPCにいないので、コードを共有することはできませんが、簡単な部分を書き直すことができます。クラスtest1javaの別のクラスの変数を参照するには?

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

、私はテストが定義されていないというエラーを取得しています。

+0

大文字でクラス名を開始するという慣習に従わないと、Java開発者は混乱します。 'public class Whatever'。おそらくあなたのIDEから警告が出されたでしょう。 – slim

+0

はい - 編集していただきありがとうございます。私は何らかの理由で私のIDEに大文字ではないテストクラスを既に持っています。 – notyou

答えて

0

あなたはそのような変数を共有することはできません。一つのクラスは、あなたがそれらを提示した方法で変数を知らないでしょう。

変数を移動する方法の1つは、メインクラスで宣言することができます。

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); 

目的のパラメーターでメソッドを呼び出して渡すことができます:

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

他のクラスをインポートすることでこれを実行できました。これが私の最初のクラスです:

8.私の第二のクラス出力し
import package1.SecondClass; 

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

:基本的には同様に作られた、参照、それはmainメソッドの外にいたとき、私は唯一の変数を参照することができ

package package1; 

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

    } 
} 

をSecondClassのpublic staticフィールド。

+0

2番目のパッケージは意味がありません、クラス名は?そして、その同じパッケージにそれをインポートし、その必要はありません... – MCMastery

+0

@MCMastery FirstClassがデフォルトのパッケージにあったので、彼らは同じパッケージではありませんでしたので、私はSecondClassをインポートする必要がありました。クラスはFirstClassとSecondClassと呼ばれます。 –

関連する問題