【发布时间】:2015-02-01 04:07:18
【问题描述】:
我已经开始学习java了。到目前为止,我已经了解方法调用是:
object.methodname(arguments)
虽然我认为更广泛地说我发现它实际上是:
receiver.methodname(arguments)
并且接收者可能不一定是对象。或者我对对象的理解是错误的。我知道一个类定义了一个类型,而一个对象是该类的一个实例。调用方法就是向对象发送消息,并且该消息必须是对象能够理解的,由其类中的方法定义。
但是……怎么样:
import java.lang.Math
double x = 16;
double y = Math.sqrt(x);
double z = Math.pow(x,y);
数学是一个对象吗?我不相信。到目前为止,我的理解是 Math 是 java.lang 包中的一个“包类”。我还没有真正理解什么是“包类”,除了它是我可以使用的某种预先编写的函数库......
但如果它是一个类,那么这意味着有时接收器可以是一个类,而不必一定是一个对象...?
...还是 Math 是某个其他类的对象/实例?
我已经用谷歌搜索了所有我能想到的 java/receiver/object/class/etc 组合,但找不到任何能真正为我解决这个问题的地方。任何人都可以为我提供任何见解来澄清它,我将不胜感激。
谢谢!
【问题讨论】:
-
Math.sqrt是一个static方法。请参阅 Java 教程 中的Understanding Class Members。 -
接收者接收对其方法之一的调用的事物。它可以是一个包或一个对象。
-
感谢您的回复。
标签: java class object receiver