{category}

Ruby - クラスとオブジェクト

class

クラス(オブジェクト指向プログラミング

意味 オブジェクトの設計図


classとは?

classは、オブジェクト指向プログラミングの基本要素の一つです。オブジェクトの構造とふるまいを定義するテンプレートやブループリントのようなものです。クラスを使うことで、同じ性質を持つオブジェクトを簡単に作成できます。

classの具体的な使い方

属性とメソッドを持つ人物クラスの定義

class Person
  attr_accessor :name, :age

  def initialize(name, age)
    @name = name
    @age = age
  end

  def introduce
    puts "こんにちは、私の名前は#{@name}で、#{@age}歳です。"
  end
end

person = Person.new("田中太郎", 30)
person.introduce
person.age = 31
person.introduce

👇出力結果

こんにちは、私の名前は田中太郎で、30歳です。
こんにちは、私の名前は田中太郎で、31歳です。

この例では、Personクラスにnameとageのインスタンスになるとattributes(属性)と、introduceメソッドを定義しています。attr_accessorを使用して、属性の読み書きを可能にしています。

継承を使用したクラス定義

class Animal
  def speak
    puts "動物が鳴きます"
  end
end

class Dog < Animal
  def speak
    puts "ワンワン!"
  end
end

class Cat < Animal
  def speak
    puts "ニャーニャー!"
  end
end

animal = Animal.new
dog = Dog.new
cat = Cat.new

animal.speak
dog.speak
cat.speak

👇出力結果

動物が鳴きます
ワンワン!
ニャーニャー!

この例では、AnimalクラスをベースクラスとしてDogとCatクラスを定義しています。各サブクラスはspeakメソッドをオーバーライドして、独自の鳴き声を実装しています。

classに関するよくある質問

Q. クラスとオブジェクトの違いは?
A. クラスはオブジェクトの設計図やテンプレートのようなものです。オブジェクトはクラスのインスタンス、つまりクラスを基に作られた実際のデータ構造です。クラスは1つですが、そのクラスから多数のオブジェクトを作ることができます。
Q. メソッドとは何ですか?
A. メソッドは、クラス内で定義される関数のようなものです。オブジェクトの振る舞いや機能を定義します。例えば、Dogクラスのbarkメソッドは、犬が吠える動作を表現しています。
Q. newメソッドの役割は?
A. newメソッドは、クラスの新しいインスタンス(オブジェクト)を作成するために使用されます。Dog.newと呼び出すと、Dogクラスの新しいオブジェクトが作られ、それを変数に代入したり、直接メソッドを呼び出したりできます。
Q. クラス名は大文字で始める?
A. はい、Rubyの慣習として、クラス名は大文字で始めます。これは定数の命名規則に従っているためです。例えば、Dog、Person、BankAccountのようになります。メソッド名や変数名は小文字で始めます。

classが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのclassやinitialize、instance_of?、superclass、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

initialize

オブジェクトの初期化を行う

種類: クラスとオブジェクト

instance_of?

厳密なクラスチェック

種類: 継承

superclass

親クラスを取得

種類: オブジェクトの性質

%=

剰余代入演算子

種類: 演算子

Nokogiri

HTMLやXMLの解析ツール

種類: 人気のある外部ライブラリ