Classクラス。
成果物
情報源
Class
クラスのクラスです。
ClassクラスはModuleクラスを継承したサブクラスである。
より正確に言えば、個々のクラスはそれぞれメタクラスと呼ばれる名前のないクラスをクラスとして持っていて、Class はそのメタクラスのクラスです。この関係は少し複雑ですが、Ruby を利用するにあたっては特に重要ではありません。
クラスとモジュールには
- クラスはインスタンスを作成できるが、モジュールはできない。
- モジュールを他のモジュールやクラスにインクルードすることはできるが,クラスをインクルードすることはできない。
という違いがありますが、それ以外のほとんどの機能は Module から継承されています。Module のメソッドのうち
- Module#module_function
- Module#extend_object
- Module#append_features
- Module#prepend_features
- Module#refine
は Class では未定義にされています。
ついに明らかになったClassとModuleの関係と違い。まあコード例から察することができたけども。
メンバ抜粋
特異メソッド
new
インスタンスメソッド
_load allocate new superclass
privateメソッド
inherited
new
k = Class.new{|c| def initialize p "in initialize" end def hoge p "hoge hoge hoge" end } o = k.new #=> "in initialize" o.hoge #=> "hoge hoge hoge"
まあどう考えても以下のようにしたほうが見やすいし短く書けて良いと思うが。
class C def initialize p "in initialize" end def hoge p "hoge hoge hoge" end end c = C.new c.hoge
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- Ruby 3.0.2
$ uname -a Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux