2016-10-20 48 views
0

私はここで簡単な間違いを犯したと確信しています。Java - 2つのクラスのシンボルを見つけることができません

私は1匹のクラスを持つ猫があります

public class Cat { 
    public double weight = 10.0; 
} 

とでヘビー別のクラス:私はHeavy.javaをコンパイルしようとすると

public class Heavy { 

    double gain = 10.0; 
    public void total() { 
     weight = weight + gain; 
    } 

} 

私はそれを見つけることができないというエラーを取得していますが体重シンボル(変数)。両方のファイルが同じディレクトリにあり、cat.javaファイルがコンパイルされています。私は何が欠けていますか?アドバイスをよろしく!

+4

'Cat'と' Heavy'の間には関係がありません。 'Heavy'はそのフィールドを取得するために' Cat'のインスタンスを必要とします。 – resueman

答えて

0
public class Heavy { 
    double gain = 10.0; 
    Cat aCat = new Cat(); 
    public void total() { 
     aCat.weight = aCat.weight + gain; 
    } 

} 

このようなものが必要な場合があります。重いクラスのCatオブジェクトをインスタンス化してウェイトを使用します。

2

weightこの のような猫のインスタンスを作成してヘビー級でそれを使用できるようにするにはCat の財産である:

public class Heavy { 

    double gain = 10.0; 
    Cat cat = new Cat(); 
    public void total() { 
     cat.weight = cat.weight + gain; 
    } 

} 
+0

ありがとう!私は、別のクラスに パブリッククラスCatMaker { \tパブリック静的無効メイン(文字列[] args){ \t \t猫の猫=新しい猫()猫のインスタンスを作成したいと言います。 \t} } ヘビークラスはどのように動作するのですか? –

+0

私の答えがあなたを受け入れるようにしてくれたら:)メインクラスの中にHeavyのインスタンスを作成しますが、heavyの各インスタンスにはCatオブジェクトがあるので、別のcatオブジェクトは必要ありません。これ以上の手助けが必要な場合は[email protected]までメールしてください –

関連する問題