Output Diary

勉強のアウトプットを毎日発信しています

【Ruby】クラスとは

f:id:kina_kq:20210228081316p:plain


クラス
とは、
"オブジェクトの種族を表すもの"です。
 
全てのオブジェクトは、いずれかのクラスに属しています。
どのクラスに所属しているかは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

 

 このように
クラスを作ることができます。
 
 
 
という感じで本日は終わりたいと思います😊
ありがとうございましたー!
また明日!
 
ウインクするウサギのイラスト