2017-09-15 19 views
1

EDIT:いくつかのコメント/回答に対してこの問題を修正しました。私はオブジェクトフィールドを印刷していますが、それでもブレークします。この時点で、私はjavareplの誤りを推測しています。クラスのパブリックフィールドにアクセスできない

私はJavaにはとても新しいので、非常に基本的な質問にはお詫び申し上げます。私はjavareplでJavaを使いこなしています。

私は SomeKlassの公共の場として、それを宣言していても someFieldにアクセスすることはできませんどのように来る
 class SomeKlass { 
     public int someField; 

     public SomeKlass(int inputField) { 
     someField = inputField; 
     } 
     } 

     SomeKlass someObj = new SomeKlass(1); 

     System.out.println(someObj.someField) 

     ERROR: cannot find symbol 
     symbol: variable someField 
     location: variable someObj of type java.lang.Object 
     System.out.println(someObj.someField); 

+0

あなたはそれにアクセスできますが、何かをする必要があります。そのフィールドを使用するJavaコードの行を記述するだけではなく、行内のフィールドへの参照を単独で行うことができます。 –

+0

javareplを使用したことがありません。頭痛やメモ帳やメモ帳++などのテキストエディタを使用してcmd prompt/terminalでコンパイルしてください。または無料のIDE eclipse/intellijをダウンロードすると、コーディングの学習がスピードアップします。 – kodaman

答えて

4

エラーメッセージ "ERROR:not a statement"が問題を示し、someObj.someFieldの変数であり、replはその変数で何をしたいのかわかりません。

+0

私はまだチャットをプレイしていません。なぜSomeObjがSomeKlassの代わりにObjectとしてタイプされているのか知っていますか? – yshavit

0

フィールドを公開するのは悪い習慣ですが、問題は解決しません。ゲッター、セッターの方が適切でしょう。メインメソッドを作成すると、それを実行できるはずです。

class App { 
    public static void main(String[] args) { 
     SomeKlass someObj = new SomeKlass(1); 
     System.out.println(someObj.someField); 
    } 
} 

これを行う正しい方法は、ゲッターとセッターです。あなたのクラスで :すべての

private someField; 

public int getSomeField(){ 
    return someField; 
} 

public int setSomeField(int someFieldInput){ 
    someField = someFieldInput; 
} 
-1

まず、これはあなたが書かれている正確なコードであると仮定すると、その後、私はあなたが宣言されたメソッド、つまりmainメソッドか何かで任意の変数にアクセスして実行する必要があることを助言することができます。

第2に、フィールドにアクセスして何かに割り当てることも、割り当てないでのままにすることもできません。したがって、someObj.someField;は正しいJava構文ではありません。

以下の例は、あなたに役立ちます。

public class SomeKlass { 
    public int someField; 

    public SomeKlass(int inputField) { 
    someField = inputField; 
    } 
    public static void main(String[] args) { 

     SomeKlass someObj = new SomeKlass(1); 

     someObj.someField = 1;  // Assign something to it. 
     int i = someObj.someField; //Assign it to something. 
     System.out.println(i); 
    } 
} 
0

あなたは私が今までjavareplを使用していないこの new SomeKlass(1).someField; enter image description here ような何かを行うことができますjavarepl使用して変数の値を印刷したい場合は、私が 、それを特に私のANSを共有していますjavareplを使用しているのでしかし、EclipseのようなIDEを使う方が良いでしょう。

関連する問題