我正在尝试使用以下代码打印出矩形区域
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
因此编译器仁慈地允许您毫不费力地调用该方法。