【Ruby入門】オブジェクトとは?オブジェクト指向で設計や開発する理由【#3】


こんにちは。Tomoyuki(@tomoyuki65)です。

オブジェクト指向のプログラミング言語といえばJavaですよね。

その他、Rubyもオブジェクト指向のプログラミング言語で、扱えるすべての値がオブジェクトという特徴があります。

 

「でもオブジェクトってなんだかよくわからない」

って方も多いのではないでしょうか?

 

でもオブジェクトは、図やたい焼きで表すとわかりやすいんです。

 

この記事では、そんなオブジェクトについて解説します。

 



『オブジェクト』を理解しよう!

オブジェクト(指向)とは?

まず『オブジェクト』を日本語で表すと『物体』です。

つまり、Rubyで扱える全てのデータ(数値、文字列、時刻など)は何らかの『物体』であると言えます。

 

また『オブジェクト指向』とは、ソフトウェア設計や開発における考え方の一つです。

 

オブジェクトが何らかの役割(メソッド)を持ち、命令を実行することが出来るという考え方です。

 

※オブジェクト指向には、クラス、インスタンス、継承などの概念があります。

 

つまり、数値や文字列などのオブジェクトはメソッドを実行できます。

例えば、以下のプログラムを実行してみて下さい。

# 数値「3.14」を四捨五入するメソッド「.round」
puts 3.14.round

# 文字列「"Hello World !"」の文字数を返すメソッド「.length」
puts "Hello World !".length

 

実行結果
3
13

 

このように、オブジェクト指向プログラミングでは、オブジェクトは何らかのメソッド(役割)を持ち、それらを実行することで様々な処理をさせることができます。

また、オブジェクトには色々な種類があり、それらの種類をクラスと呼びます。

 

クラスとインスタンス

オブジェクトの種類を『クラス』といい、オブジェクトは何らかのクラスに属しています。

例として、数値であれば「Integer」や「Float」クラス、文字列であれば「String」クラスです。

 

では、以下のプログラムを実行してみて下さい。

各オブジェクトが属しているクラスを確認することができます。

# 数値「10」のクラスを確認
puts 10.class

# 数値「3.14」のクラスを確認
puts 3.14.class

# 文字列「Hello World !」のクラスを確認
puts "Hello World !".class

 

実行結果
Integer
Float
String

 

クラスはよく設計図のようなものと例えられ、クラスはオブジェクトがどのようなものかを定義します。

また、それらクラスを具象化したものを『インスタンス』と呼びます。

つまり、全てのオブジェクトは何らかのクラスのインスタンスであるとも言えます。

 

図のように、クラスやインスタンスはよくたい焼きに例えられます。

 

オブジェクト指向で設計や開発をする理由

ここまでオブジェクトについて簡単に説明してきました。

ではなぜオブジェクト指向で設計や開発をする必要があるのでしょうか?

 

それは、プログラムの変更に対して柔軟に対応するためです。

 

プログラムは常にアップデートしていかなければ、時間の経過と共に腐敗していきます。

つまり、アプリケーションは開発して終わりではなく、保守していく必要があります。

プログラムには変更する可能性が低い部分と高い部分があり、低い部分をベースとして、高い部分をうまくクラスにすることで、変更に柔軟に対応できます。

 

たい焼きで表すと、タイ焼き器一つに対して、様々な具のたい焼きを作ることができます。

 

まとめ

  •  Rubyでは扱える全てのデータはオブジェクト
  •  オブジェクトは何らかのメソッドを持ち、様々な処理をすることができる
  •  オブジェクトの種類をクラス、クラスから具象化したものをインスタンスと呼ぶ
  •  どのようなオブジェクトかはクラスに定義する
  •  プログラムの変更に対して柔軟に対応するため、オブジェクト指向で設計開発する

 

  •  関連記事

【無料あり】Ruby入門サイトおすすめ3選!初心者向けの学習方法を解説

2017年10月24日

 

The following two tabs change content below.

Tomoyuki

SEを5年経験後、全くの未経験ながら思い切ってブロガーに転身し、月間13万PVを達成。その後コロナの影響も受け、以前から興味があったWeb系エンジニアへのキャリアチェンジを決意。現在はWeb系エンジニアとして働きながら、プロゲーマーとしても活躍できるように活動中。








シェアはこちらから


【2024年】おすすめのゲーミングPC

モンハンワイルズの発売日とPC版(Steam版)の推薦スペックが公開されたので、おすすめのゲーミングPCをご紹介!


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です