class Pet
def initialize(name, age)
@name = name
@age = age
end
def introduce
puts "私の名前は#{@name}で、#{@age}歳です"
end
end
cat = Pet.new("タマ", 3)
cat.introduce
class Bird
attr_accessor :name, :species
def initialize(name, species)
@name = name
@species = species
end
def fly
puts "#{@name}(#{@species})が空を飛んでいます"
end
end
parrot = Bird.new("ピーちゃん", "インコ")
parrot.fly
class Animal
def initialize(name)
@name = name
end
def sleep
puts "#{@name}が眠っています"
end
end
class Dog < Animal
def bark
puts "#{@name}がワンワンと吠えています"
end
end
shiba = Dog.new("ハチ")
shiba.bark
shiba.sleep
class Mammal
def initialize(name)
@name = name
end
def move
puts "#{@name}が移動しています"
end
end
class Rabbit < Mammal
def move
puts "#{@name}がぴょんぴょん跳ねています"
end
end
bunny = Rabbit.new("ウサギちゃん")
bunny.move
class Fish
@@count = 0
def initialize(name, color)
@name = name
@color = color
@@count += 1
end
def self.total_count
puts "現在の魚の数: #{@@count}匹"
end
def swim
puts "#{@color}の#{@name}が泳いでいます"
end
end
goldfish = Fish.new("キンちゃん", "金色")
goldfish.swim
Fish.total_count
class Elephant
def initialize(name, weight)
@name = name
@weight = weight
end
def status
puts "#{@name}の状態: #{health_check}"
end
private
def health_check
@weight > 3000 ? "健康" : "痩せ気味"
end
end
jumbo = Elephant.new("ジャンボ", 3500)
jumbo.status
class Horse
def initialize(name, age)
@name = name
@age = age
end
def life_stage
case @age
when 0..2
puts "#{@name}は子ウマです"
when 3..15
puts "#{@name}は成ウマです"
else
puts "#{@name}は高齢ウマです"
end
end
end
stallion = Horse.new("サラブレッド", 8)
stallion.life_stage