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 回答