Java 使用(.)操作数在其他类中声明方法

Java 使用(.)操作数在其他类中声明方法,java,Java,我试图用下面的代码打印出一个矩形区域 System.out.println("Area of rectOne: " + rectOne.getArea()); 但是,既然getArea方法是在另一个类中定义的,那么它不应该是 System.out.println("Area of rectOne: " + rectOne.NameOfClass.getArea()); rectOne具有它是哪个类的信息,因此rectOne.getArea()具有足够的信息来查找该方法 只有stat

我试图用下面的代码打印出一个矩形区域

  System.out.println("Area of rectOne: " + rectOne.getArea());
但是,既然getArea方法是在另一个类中定义的,那么它不应该是

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

rectOne
具有它是哪个类的信息,因此
rectOne.getArea()
具有足够的信息来查找该方法


只有
static
方法可以访问,并且应该通过类名访问。

此答案假设
rectOne
引用了具有
getArea()
方法的类的实例

Rectangle rectOne = new Rectangle(); //Here you are getting reference to Rectangle instance.
rectOne.getArea();
getArea()
是实例方法,所以需要引用此类的实例才能访问
getArea()
方法

Rectangle rectOne = new Rectangle(); //Here you are getting reference to Rectangle instance.
rectOne.getArea();

如果你有申报单

Object rectOne = new Rectangle();
那你就需要

System.out.println("Area of rectOne: "
                   + ((Rectangle)rectOne).getArea());
注意语法;这与你的建议不同。但是,既然你可能

Rectangle rectOne = new Rectangle();
编译器已经知道在
rectOne
上调用方法时所涉及的类,因此编译器很幸运地允许您无需进一步ado即可调用该方法