在Java中,接收器究竟是什么,或者接收器到底可以是什么?

In Java, what exactly is a receiver or what exactly can a receiver be?

我开始学习了java。到目前为止,我了解到方法调用是:

object.methodname(arguments)

尽管我想得更广泛,但我发现它实际上是:

receiver.methodname(arguments)

并且接收者不一定是对象。或者我对对象的理解是错误的。我知道 class 定义了一个类型,而对象是 class 的一个实例。调用方法就是向对象发送消息,并且消息必须是对象理解的内容,如其 class.

中的方法所定义的那样

但是……怎么样:

import java.lang.Math
double x = 16;
double y = Math.sqrt(x);
double z = Math.pow(x,y);

Math 是一个对象吗?我不这么认为。到目前为止,我的理解是 Math 是 java.lang 包中的一个 "package class" 。我还没有真正理解 "package class" 是什么,除了它是我可以使用的某种预先编写的函数库...

但是如果它是 class,那么这意味着有时接收者可以是 class 而不一定是对象...?

...或者 Math 是其他 class 的 object/instance?

我用 google 搜索了我能想到的 java/receiver/object/class/etc 的每个组合,但找不到任何地方可以真正为我解决这个问题。我很感激任何人可以提供给我清理它的任何见解。

谢谢!

数学是class!但那些是静态方法 :) 这意味着 Math 不需要实例化为要使用的对象。你直接用就行了

包只是 organize/categorize classes.

的方式

"receiver" 不是 Java 和 O.O 中的常用行话。