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のすべての組み合わせをグーグルで検索しましたが、これを本当に解決してくれる場所はどこにもありません。それを解決するために誰かが私に提供できる洞察をいただければ幸いです。
ありがとう!