プログラミング

【決定版】オブジェクト指向のクラスとインスタンスについてわかりやすく解説

class-instance

本記事ではオブジェクト指向のクラスインスタンスについて初心者向けになるべくわかりやすく解説してみました。

  • クラス・インスタンスとは?
  • クラスの定義方法とその効果
  • インスタンスの使い方
たろう
たろう
本記事を読むことでオブジェクト指向にまつわる上記の内容が理解できることでしょう♪
engineer-job-change
【厳選】エンジニアにおすすめの転職スカウトサービス7選エンジニアにおすすめの転職スカウトサービスは?本記事では現役エンジニア目線でエンジニアにおすすめしたい転職スカウトサービスを厳選して紹介しております。...
engineer-side-job
【土日在宅OK】エンジニアにおすすめの副業エージェント7選エンジニアにおすすめの副業エージェントは?本記事では数ある副業案件を扱うエージェントの中から現役エンジニアである筆者が厳選して7社紹介しております。副業に興味のあるエンジニアは要チェックです。...

クラス・インスタンスとは?わかりやすく解説

object

クラスとは、いわばインスタンス(オブジェクト)の設計図になります。

「オブジェクト」という言葉は曖昧で、クラスのことを指す場合もあるが、基本的にはクラスから生み出されるインスタンスのことだと思ってもらえればOK。

そして、このクラスという設計図に対して具体的な属性値を与え、メモリ上に生成してポコリと実態化させたものをインスタンスと呼びます。

クラスとインスタンス

オブジェクト指向では、クラスという設計図を基に実体であるインスタンスが生成されるという関係をまずは押さえておきましょう。

クラスは設計図。クラスから生み出された実体がインスタンス。 

クラスの定義方法についてわかりやすく解説

programming-people

それを踏まえて、本章では設計図であるクラスの定義方法について解説いたします。

クラス図(UML)

クラスには「どのような属性や操作を持っているか」を記述していきます。

クラスとインスタンス

なお上図のように、クラスの設計内容をクラス名・属性・操作の一覧として並べる書き方は”クラス図”という設計図のルールに準拠したものです。

クラス図は主にオブジェクト指向設計で用いられる統一モデリング言語、UML(Unified Modeling Language)で定められている図の一つ。

クラス属性・操作の宣言方法

クラスの「属性」を宣言するには、クラス内で変数宣言を記述するだけでOKです。

一方の「操作」に関しても、クラス内でメソッドを記述するだけになります。

設計図であるクラスを定義する際は、クラス名・属性(データ)・操作(メソッド)を必要に応じて記述する。

クラス定義による効果

users

前章で解説した方法でクラスを定義した場合、以下2つの効果が表れます。

  • インスタンスの生成が可能になる
  • クラス型の変数が利用可能になる

インスタンスの生成が可能になる

そもそもインスタンスを生成するためにクラスを定義するのですから「インスタンスの生成が可能になる」というのは当たり前とも言えます。

クラス型の変数が利用可能になる

「クラス型の変数が利用可能になる」というのはクラスから生み出されたインスタンスを入れる箱を利用できるようになるということです。

クラスを定義することで利用可能になる型のことを「クラス型」といいます。

通常、インスタンスはクラス型変数に入れて利用するのですが、これはクラスから生み出されるインスタンスを識別するためです。

クラス型変数を用いる理由はインスタンスをプログラム的に識別するため。

これにより同じクラスからいくつインスタンスを生成しても別の実体(例えばA,B,C)として識別できるようになります。

インスタンスの利用方法についてわかりやすく解説

programmer

インスタンスの利用方法はプログラミング言語によって異なり、例えばJavaの場合だとNEW演算子を用いて生成したインスタンスをクラス型の変数などに格納して利用します。

クラス名 変数名 = new クラス名():

 

インスタンスの生成・利用方法については、各自利用するプログラミング言語のリファレンスを参考にしてみてください。

どの言語でも変わらないクラスとインスタンスの基本は「設計図であるクラスを定義してそこからインスタンスが生成される」という関係です。

利用方法はプログラミング言語によって異なるがオブジェクト指向におけるクラスとインスタンスの本質は変わらない。 

オブジェクト指向のクラスとインスタンス|まとめ

本記事のまとめ
  • クラスは設計図。設計図であるクラスから生み出された実体がインスタンス。
  • クラスを定義する際は「どのような属性や操作を持っているか」を記述していく。
  • クラスを定義することによりインスタンスの生成とクラス型変数の利用が可能になる。
  • インスタンスの利用方法はプログラミング言語によって異なるが本質は変わらない。
たろう
たろう
ここまで記事を読んでいただきありがとうございました♪

本記事がクラスインスタンスの理解促進に少しでもお役に立てたのなら幸いです。

また、当ブログでは他にもオブジェクト指向に関する記事を公開しているので、気になる記事がないか併せて確認してみてください。

programming-people
【2023年版】オブジェクト指向のおすすめ本5選オブジェクト指向を学ぶのにおすすめの本を初心者向けに紹介。どの本も良書なので一冊を繰り返し読み返すことでオブジェクト指向をマスターすることができるでしょう。...
engineer-job-change
【厳選】エンジニアにおすすめの転職スカウトサービス7選エンジニアにおすすめの転職スカウトサービスは?本記事では現役エンジニア目線でエンジニアにおすすめしたい転職スカウトサービスを厳選して紹介しております。...
engineer-side-job
【土日在宅OK】エンジニアにおすすめの副業エージェント7選エンジニアにおすすめの副業エージェントは?本記事では数ある副業案件を扱うエージェントの中から現役エンジニアである筆者が厳選して7社紹介しております。副業に興味のあるエンジニアは要チェックです。...
こちらの記事もおすすめ!

COMMENT

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