2016-05-25 7 views
-6

メインメソッドから変数を必要とするプログラムを作成していますが、Main main = new Main();を使用してインポートしようとすると変数にアクセスできません。変数aを別のクラスで使用するにはどうすればよいですか?別のクラスのローカル変数にアクセスする方法

public class Main{ 
    public static void main(String[] args){ 
     int a = 10; 
    } 
} 

public class SomeClass{ 
    Main mainclass = new Main(); 
    main.a;//I get errors when I do this 
} 
+2

*これを行うとエラーが発生します*できないためです。なぜ彼らは**ローカル**変数と呼ばれると思いますか? –

+2

あなたはおそらくJavaクラスの仕組みを読むべきです。 –

+0

**ローカル変数**のポイントは、スコープとライフスパンが制限されていることです。値を計算したり、何らかの結果を達成するために使用されたり、存在しなくなったりすることができます。変数が定義されているブロックの外部から変数にアクセスする場合は、**インスタンス変数**または**静的変数**を作成する必要があります。 さらに、いくつかの方法でアイデアをミックスしていると思うので、**クラス**、**インスタンス**、**メソッド**がjavaであるものを読みたいかもしれません。 –

答えて

0

これが「ローカル」変数と呼ばれる理由です。これは、定義されているスコープ内でのみローカルで使用できます。ネイティブコードを追加していくつかのダーティポインタをつけない限り、この変数にアクセスすることは決してできません。あなたが別のクラスにし、静的main方法からaが必要な場合は

あなたは

public class Main{ 
    static int a; 
    public static void main(String[] args){ 
     a = 10; 
    } 
} 

public class SomeClass{ 
    Main.a; 
} 

のようにローカルスコープの外にそれを引っ張って、aクラスの静的メンバを作成する必要があります。しかし、実際に、私はあなたが得るべきだと思いますあなたの例は、あなたが両方のことについて多くの手がかりを持っていないことを示しているので、あなたが進める前に、Javaとオブジェクト指向開発に関する良い本です。

+0

@ BruceWayne私はなぜあなたが私の完全に有効な回答を受け入れないのか尋ねることができますか? – Vampire

関連する問題