2

次のコードを使用して長方形の領域を印刷しようとしています

  System.out.println("Area of rectOne: " + rectOne.getArea());

ただし、メソッド getArea は別のクラスで定義されているため、そうすべきではありません

  System.out.println("Area of rectOne: " + rectOne.NameOfClass.getArea()); 
4

3 に答える 3

3

この回答は、メソッドrectOneを持つクラスのインスタンスへの参照であると想定していますgetArea()

getArea()はインスタンスメソッドなので、メソッドにアクセスするにはこのクラスのインスタンスへの参照が必要ですgetArea()

Rectangle rectOne = new Rectangle(); //Here you are getting reference to Rectangle instance.
rectOne.getArea();
于 2013-01-20T13:37:09.900 に答える
2

rectOneどのクラスであるかの情報があるrectOne.getArea()ため、メソッドを見つけるのに十分な情報があります。

staticメソッドのみがクラス名を介してアクセスでき、アクセスする必要があります。

于 2013-01-20T13:36:54.603 に答える
0

宣言があった場合

Object rectOne = new Rectangle();

その後、あなたが必要になるでしょう

System.out.println("Area of rectOne: "
                   + ((Rectangle)rectOne).getArea());

構文に注意してください。それはあなたの提案とは異なります。しかし、あなたはおそらく持っているので

Rectangle rectOne = new Rectangle();

コンパイラーは、メソッドを呼び出すときに関与しているクラスをすでに認識しているrectOneため、コンパイラーは、それ以上の手間をかけずにメソッドを呼び出すことを容赦なく許可します。

于 2013-01-20T13:40:05.293 に答える