2016-06-21 18 views
1

私はJavaを勉強しています。私は初心者です。 3つのクラスを(同じパッケージに)作成しようとしました。 メインメソッド(JavaApp1)を持つもの、 "JavaClass1"と最後のクラス "JavaClass2"と呼ばれるもの。メインメソッド外のJavaクラスインスタンス

public class JavaClass1 { 
public int var1; 
public int var2; 

} 

JavaClass2のコード:ここで はJavaClass1のコードですJavaClass2で

public class JavaClass2 { 
JavaClass1 ogg = new JavaClass1(); 
ogg.var1 = 4; 
ogg.var2 = 7; 

} 

、Netbeansのは、パッケージのoggのはありません「の割り当て(JavaClass1.var1とJavaClass.var2)に関連し、私に2つのエラーを表示します

。期待。存在するが、私はクラスのインスタンスを作成し、mainメソッド内の割り当てを属性ならば、問題がないではない。なぜ?

+0

を読んで、ゲッターとセッターを使用してみてください 変数をプライベートとして設定することはできますか? さらに多くのコードが役に立ちます – alovaros

+0

@alovarosコードで十分です。エラーはすでに回答に記載されています。 – Fildor

答えて

4

メソッドの外にあるオブジェクトのフィールドを設定することはできません。

ogg.var1 = 4; 
ogg.var2 = 7; 

は何らかの方法の中になければならない。

クラスは、クラスフィールド(ファーストクラスのvar1など)とメソッドで構成されます。メソッドは "仕事をする"、すなわちコードを実行する。フィールドを初期化することはできますが、他のすべてのコードはメソッド内にある必要があります。

もうひとつ注意:パブリックフィールドを持つことは非常に悪いスタイルです。代わりにゲッターとセッターを書いてください。

関連する問題