クラスを使用して以下の表示結果を出力するコードを記述します。
表示結果
ワンワン
わたしは犬です
わたしの名前はポチで種類はトイプードルです
仕様
クラス変数 | 値 |
---|---|
type | 犬 |
インスタンス変数 | 値 |
---|---|
name | ポチ |
dog_type | トイプードル |
クラスメソッド
メソッド名 | 処理 |
---|---|
say | ワンワン |
インスタンスメソッド
メソッド名 | 処理 |
---|---|
say_type | "私は{クラス変数type}です" |
self_introduction | わたしの名前は{インスタンス変数name}で種類は{インスタンス変数dog_type}です |
雛形
class Dog
@@type = "犬"
def initialize
@name = "マロン"
@dog_type = "トイプードル"
end
def self.say
puts "ワンワン"
end
def say_type
puts "わたしは#{@@type}です"
end
def self_introduction
puts "わたしの名前は#{@name}で種類は#{@dog_type}です"
end
end
dog = Dog.new
Dog.say
dog.say_type
dog.self_introduction
1)クラスの定義はclass クラス名 〜 endでした。まずはクラス変数であるtypeを定義します。
2)クラス変数は変数名の始めに@@(アットマーク2つ)をつけます。
3)インスタンス変数です。インスタンス変数は変数名の始めに@(アットマーク1つ)をつけます。
4)インスタンスごとに定義する必要があるのでインスタンスメソッド内で定義します。
5)クラスメソッドsayの定義をします。クラスメソッドはメソッドの前に自身のメソッドであることを示すself.をつけます。
6)インスタンスメソッドであるsay_typeとself_introductionを定義します。インスタンスメソッドの中ではクラス変数とインスタンス変数の両方が使えます。インスタンスメソッドの書き方は通常のメソッドと同じです。
7)定義したメソッドをクラスの外から呼び出します。