Rubyにおけるクラス(class)定義について現役エンジニアが解説【初心者向け】
初心者向けにRubyにおけるクラス(class)定義について解説しています。ここではクラスの基本と使い方、定義の方法について説明します。オブジェクト指向言語において重要となる部分なので必ず仕組みを理解しておきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Rubyにおけるクラス(class)定義について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
今回は、Rubyに関する内容だね!
どういう内容でしょうか?
クラス(class)定義について詳しく説明していくね!
お願いします!
目次
クラスとは
Rubyでは、オブジェクトを作ったり使ったりすることで処理を実現していきます。
クラスとはインスタンスの元となる、設計図のようなものです。クラスからインスタンス(設計図を実体化させたもの)を作成し、そのインスタンスで処理を行います。
例えば、「人間」というクラス(設計図)があってそのクラスを元に「スズキさん」「タナカさん」のようにインスタンスを作成して、その作成したインスタンスで処理を行うといった流れです。
クラスの使い方
①クラスの作成
クラスは以下のように定義します。「class」と「end」の行の間に、クラス内で使う変数やメソッドを書きます。
class クラス名 クラス内で使う変数やメソッド end
②クラス(設計図)からインスタンスを作成する
クラス名.new
クラスを定義してみよう
# クラス定義 class Human # オブジェクトの変数(値) attr_accessor :name, :job # インスタンスを初期化するための、特別なメソッド def initialize(name,job) self.name = name self.job = job end # オブジェクトのメソッド(処理) # self は 変数やメソッドを呼び出されたインスタンス自身 (tanaka 等)を指す def say puts "私は#{self.name}です。#{self.job}の仕事をしています。" end end # インスタンスの生成 tanaka = Human.new("タナカ","教師") suzuki = Human.new("スズキ","美容師") sato = Human.new("サトウ","公務員") # インスタンスの使用 tanaka.say suzuki.say sato.say #=> 私はタナカです。教師の仕事をしています。 私はスズキです。美容師の仕事をしています。 私はサトウです。公務員の仕事をしています。
まとめ
今回はクラスの作り方と使い方について紹介していきました。
クラスには他にも継承やモジュールをクラスに混ぜ合わせるMix-inなどRubyでシステムを作っていくさいには必要となる知識もあるので合わせて学習しておくと良いでしょう。
監修してくれたメンター
澤亀浩弥(さわかめひろや)
Webエンジニア。 開発実績等は勤怠情報管理システムの開発、地方銀行のプログラムの保守・運用、企業とインフルエンサーをマッチングさせるプラットフォームの開発。 25歳までプロ野球の世界を目指し独立リーグでプレー。 その後、某大手会社の製造業作業員として働いていたが毎日の単調な仕事よりもっとクリエイティブな仕事がしたいと思い友人エンジニアにプログラミング学習方法など教えてもらい独学で半年程学習した後、IT業界に転職し、現場経験を積んでフリーランスエンジニアとして独立。 現在はその経験をこれからプログラミングを学んでいく方に伝えていくためにより広い知識を勉強中です。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。