次のコードを使用して長方形の領域を印刷しようとしています
System.out.println("Area of rectOne: " + rectOne.getArea());
ただし、メソッド getArea は別のクラスで定義されているため、そうすべきではありません
System.out.println("Area of rectOne: " + rectOne.NameOfClass.getArea());
次のコードを使用して長方形の領域を印刷しようとしています
System.out.println("Area of rectOne: " + rectOne.getArea());
ただし、メソッド getArea は別のクラスで定義されているため、そうすべきではありません
System.out.println("Area of rectOne: " + rectOne.NameOfClass.getArea());
この回答は、メソッドrectOne
を持つクラスのインスタンスへの参照であると想定していますgetArea()
。
getArea()
はインスタンスメソッドなので、メソッドにアクセスするにはこのクラスのインスタンスへの参照が必要ですgetArea()
。
Rectangle rectOne = new Rectangle(); //Here you are getting reference to Rectangle instance.
rectOne.getArea();
rectOne
どのクラスであるかの情報があるrectOne.getArea()
ため、メソッドを見つけるのに十分な情報があります。
static
メソッドのみがクラス名を介してアクセスでき、アクセスする必要があります。
宣言があった場合
Object rectOne = new Rectangle();
その後、あなたが必要になるでしょう
System.out.println("Area of rectOne: "
+ ((Rectangle)rectOne).getArea());
構文に注意してください。それはあなたの提案とは異なります。しかし、あなたはおそらく持っているので
Rectangle rectOne = new Rectangle();
コンパイラーは、メソッドを呼び出すときに関与しているクラスをすでに認識しているrectOne
ため、コンパイラーは、それ以上の手間をかけずにメソッドを呼び出すことを容赦なく許可します。