【Ruby】クラスとは
クラスとは、
"オブジェクトの種族を表すもの"です。
全てのオブジェクトは、いずれかのクラスに属しています。
どのクラスに所属しているかはclassメソッドで調べることが出来ます。
classメソッドで数字を調べてみましょう!
●class.rb
p 1.class
p 2.class
p 100.class
↓
ターミナル
Integer
Integer
Integer
じゃーん!
数字をclassメソッドで調べると、
クラス名はIntegerであることがわかります。
オブジェクト名は整数オブジェクトになります。
次は、
文字を入力してみましょうー!
●class.rb
p "ポテトチップス".class
p "hello".class
p "".class
↓
ターミナル
String
String
String
はーい。
出てきました!!!👀
文字列のクラス名は、
Stringということになります。
オブジェクト名は文字列オブジェクトとなります。
では、次は配列を調べてみましょうー!
なにが出力されるか予想しながらやってみてくださいね!
●class.rb
p [1,2,3].class
p ["カブトムシ", "クワガタ"].class
p .class
↓
ターミナル
Array
Array
Array
はい。予想通りの結果になりましたー!
一旦ここで頭を整理しときましょう!
例
|
オブジェクト名
|
クラス名
|
1,2,100
|
整数オブジェクト
|
Integer
|
"ポテトチップス", "hello", " "
|
文字列オブジェクト
|
String
|
[1,2,3], ["カブトムシ", "クワガタ"], [ ]
|
配列オブジェクト
|
Array
|
クラスに属するオブジェクトを、そのクラスの「インスタンス」と呼ぶこともあります。
インスタンスはオブジェクトとほぼ同義のように使いますが、「クラスから作ったオブジェクトである」「そのクラスに属する」ということを強調したいときに使います。
オブジェクトは、所属するクラスが用意しているメソッドを使うことができます。
前回紹介した偶数かどうかを判断する
even?メソッドがありましたね!
●class.rb
p 1.even?
p 57.even?
p 100.even?
↓
ターミナル
false
false
true
1と57は奇数なので、falseを返します。
100は偶数なので、trueですね。
このeven?メソッドは、Integer クラスしか使えません。
エラーが出てしまいます。
例えば、
p "カフェラテ".even?
こうすると、
↓
undefined method `even?' for "カフェラテ":String (NoMethodError)
と表示されると思います。
ArrayやStringでは使えないので注意しましょう。
オブジェクトを作ってみよう!
それではオブジェクトを作ってみましょうー!
作り方はとても簡単です!
クラス.new
でそのクラスのオブジェクトを作成することができます。
p String.new
p String.new("カフェラテ")
p Array.new
p Array.new(2, "ヘリコプター")
↓
""
"カフェラテ"
[]
["ヘリコプター", "ヘリコプター"]
となります。
クラスを作ってみよう!
次にクラスを作ってみましょうー!
class クラス名end
このように
クラスを作ることができます。
という感じで本日は終わりたいと思います😊
ありがとうございましたー!
また明日!