だのでもう一度整理
- クラスにはメソッドを定義することができる。
- メソッドには、自身のためのselfメソッドとインスタンスのためのInstanceメソッドがある。
- クラスはインスタンスを生成でき、そのインスタンスはそのクラスに定義されたInstanceメソッドを自身のためのメソッドとして使える。
- オブジェクトにおけるselfメソッドはInstanceメソッドであり、クラスにおけるselfメソッドはクラスメソッドである。
- クラス継承は、サブクラスにおいてスーパークラスに定義されたselfメソッドとInstanceメソッドを、自分に定義されたメソッドとして継承すること。
- すべてのクラスの子孫クラスはObjectクラスであり、従ってObjectクラスに定義されたselfメソッドとInstanceメソッドは、そのまますべてのサブクラスで定義されたものになる。
- すべてのクラスはClassクラスのインスタンスだから、Classクラスに定義されているInstanceメソッドはすべてのクラスのクラスメソッドになる。
- ClassクラスはObjectクラスとModuleクラスを継承しているから、それらに定義されているselfメソッドとInstanceメソッドは、Classクラスに定義されたものになる。従って、ObjectクラスとModuleクラスに定義されているInstanceメソッドは、すべてのクラスのクラスメソッドになる。
- すべてのモジュールは、Moduleクラスのインスタンスである。よってModuleクラスに定義されているInstanceメソッドは、すべてのモジュールのモジュールメソッドになる。
- モジュールのincludeは、そこに定義されたInstanceメソッドを、include先クラスのInstanceメソッドとして継承すること。この場合モジュールに定義されたselfメソッド(モジュールメソッド)は継承されない。
- ObjectクラスはKernelモジュールをincludeしている。従って、Kernelモジュールに定義されたInstanceメソッドは、Objectクラスに定義されたものになる。
No comments:
Post a Comment