💎
Ruby入門 〜クラス編〜
クラス
Rubyはオブジェクト指向のプログラミング言語であるため、まず何かしらの処理や情報を持つクラス(設計図)を作成し、その設計図をもとに作成したインスタンスに処理をさせる。
- クラス名の1文字目は大文字で定義する
- attr_accessorシンボルを使ってインスタンス変数を定義することができる
- クラスの中でメソッドを定義することもできる
- インスタンス変数をインスタンスメソッドの中で使う場合には「self」変数を使うことができる
1. クラスを用意する
class Menu
attr_accessor :name
attr_accessor :price
def show_menu
puts "#{self.name}は#{self.price}です"
end
end
2. クラスからインスタンスを作成する
menu_instance = Menu.new
3. インスタンスに情報を追加する
menu_instance.name = "すし"
menu_instance.price = 200
initializeメソッド
initializeメソッドとはメソッドの1種であり、インスタンスが作成された直後に実行されるメソッドである
def initialize(name, price)
self.name = name
self.price = price
end
Initializeメソッドに引数を渡したい場合には、インスタンス作成の時に引数を設定する
menu_instance = Menu.new(“すし”, 200)
クラスメソッド
クラスメソッドとはクラスに対して呼び出すメソッドである
定義の仕方は以下のようにする
Class Menu
# パターン1
def Menu.is_discount_day?
# 処理
end
# パターン2
def self.is_discount_day?
# 処理
end
end
# クラスメソッドの実行
Class.method
# インスタンスメソッドの実行
instans = Class.new
instans.method
継承
あるクラスを元にして新しいクラスを作ることを継承と呼ぶ
継承元のクラスを親クラス、継承先のクラスを子クラスという
継承することによって親クラスのインスタンス変数とインスタンスメソッドが子クラスに引き継がれる
class NewClass < OriginalClass
オーバーライド
親クラスにあるメソッドと同じ名前のメソッドを子クラスで再定義して上書きすることをオーバーライドという
親クラスの同名のメソッドを呼び出す場合には『super』を使う
class def initialize(name, price)
super(name, price)
self.calorie = calorie
end
ライブラリ
- 組み込みライブラリ(require不要)
- 標準添付ライブラリ(requireで呼び込む)
- RubyGem(Rubyライブラリのホスティングサービス)
today = Time.now() 現在の日時を取得
today.year
today.month
today.day
require “time”
time = Time.parse(“2020/01/02/26”)
モジュール
定数やメソッドをまとめる機能
クラスとは異なり、インスタンス化はできない
モジュールのメソッドを利用するためには、「module_function :メソッド名」と書いておく必要がある
- Mix-in
モジュールの機能をクラスに組み込む
include モジュール でクラス内に持ち込める
module Greeting
def say_morning()
puts "good morning! world"
end
end
class Player
include Greeting
def introduce()
puts "私は、勇者です。"
end
end
Discussion