2017-06-02 11 views
-3

私はjavaで新しいです。私はJavaで静的な平均を検索して、私はスタックオーバーフローのソリューションを得ましたhereしかし、私はそれをコンパイルしたときにエラーを表示しています。誰でも私が間違っていると示唆することができますか?クラスレベルではよく<identifier> javaでのエラーコンパイル

public class Hello 
{ 
    // value/method 
    public static String staticValue; 
    public String nonStaticValue; 
} 

class A 
{ 
    Hello hello = new Hello(); 
    hello.staticValue = "abc"; 
    hello.nonStaticValue = "xyz"; 
} 

class B 
{ 
    Hello hello2 = new Hello(); // here staticValue = "abc" 
    hello2.staticValue; // will have value of "abc" 
    hello2.nonStaticValue; // will have value of null 
} 

enter image description here

+0

'static'メンバ変数と非静的メンバ変数 –

答えて

3

あなただけのそのクラスの属性を定義することができ、あなたは、クラスAとClassBの中でやって任意の処理を行う傾けます。処理はメソッド内でのみ行うことができます。ただ、mainメソッドを追加

makeはオブジェクト自分

​​

主な方法は、Javaで任意のプログラムのエントリポイントです。この主なメソッドが呼び出される場所が混乱しても心配しないでください。

+1

の使用の使用を知っているか、またはこのdoesn'tコンパイル静的コードブロック –

+0

でそれを持って、可変アクセス' hello2.staticValue; 'ただスタンドアロンではありません(私はおそらく上記の課題をコピーするのを忘れたことを知っています) – SomeJavaGuy

+0

私はそれを編集しました。オブジェクト参照を使用して静的変数にアクセスしていました。静的変数は、クラス参照を使用してのみアクセスできます。 –

1

まず、Javaファイルを実行するには、mainメソッドを含むパブリッククラスが必要です。可変内容の変更は、メソッド内でのみ行うことができます。

public class Hello(){ 
    public static String staticValue; 
    public String nonStaticValue; 
    public static void main(String[] args){ 
    Hello hello = new Hello(); 
    Hello.staticValue = "abc"; 
    hello.nonStaticValue = "xyz"; 
    Hello hello2 = new Hello(); 
    System.out.println(hello2.staticValue); 
    System.out.println(hello2.nonStaticValue); 
    } 
} 
関連する問題