【月間10万PV達成】ブログの作り方を無料公開中!

プログラミングの「クラス」や「インスタンス」とは?簡単に覚えるコツ

クラスやインスタンスとは

プログラミングを始めるなら、絶対に避けては通れない「クラス」や「インスタンス」。

あなたは、正しく理解できていますか?

「クラス」と「インスタンス」の違いを正しく理解していないと、今後プログラミングしていくなかで、つまづく場面がたくさん出てくるでしょう。

初心者にとって、ちょっと難しいキーワードなんですが、めちゃくちゃ簡単に説明するとこんな感じです。

  • 「クラス」…設計図
  • 「インスタンス」…設計図から作られた実体

「クラス」は何もないところから作ることができますが、「インスタンス」はクラスがないと作ることができません。

つまり、何はともあれ、まずはクラスを定義する必要があるってことです。インスタンスを考えるのは、そのあとで大丈夫!

では、クラスを定義するにはどうするのか?

クラスからどうやってインスタンスを作るのか?

今回は、「クラス」と「インスタンス」について、ゲームのキャラクターを作るときの考え方を例に、解説していきます!

ドラクエやったことある人は、イメージしやすいかも!

プログラミングにおける「クラス」とは

インスタンス化とは

プログラミングにおけるクラスとは、インスタンス(実体)を作るための「設計図」のことです。

そしてクラスを構成している要素は、以下の3つです。

  1. クラス名
  2. プロパティ
  3. メソッド

「さらにわからない用語が出てきた…」と思ってしまうかもしれませんが、内容はとっても簡単です!

ゲームキャラクターをクラス化する例で考えてみましょう。

クラス名をつける

まず、クラスには必ず名前をつける必要があります。

車の設計図なら「車」になりますし、家の設計図であれば「家」になります。

今回は、ゲームに出てくるキャラクターの設計図なので「キャラクター」というクラス名にしましょう。

プロパティを考える

ゲームキャラクターは、以下のような「パラメータ」を持っています。

  • 名前
  • HP
  • ちから

このようなクラスが持っているパラメータや情報のことを、「プロパティ」と呼びます。

メソッドを考える

また、キャラクターはパラメータのほかにも、以下のような「動き」を持っているはずです。

  • たたかう
  • にげる

このようなクラスが持っている動きのことを、「メソッド」と呼びます。

クラスの使い方

では、さきほどのキャラクターの例を使って、クラスを定義する構成を見てみましょう。

クラス定義
# クラス名
クラス開始 Character

  # プロパティ(名前、HP、ちから)
  name変数
  hp変数
  power変数

  # メソッド(たたかう、にげる)
  fight関数
  escape関数

クラス終了

上を見てもらうとわかるとおり、クラスを定義するときは、最初に「クラス名」を記述し、クラスの中に「プロパティ」と「メソッド」を定義します。

プロパティは「変数」、メソッドは「関数」を使ってあらわします。

クラス定義の書き方は、プログラミング言語によっても多少違いますが、構成はほとんど同じです。

クラスの細かい書き方は、プログラミング言語を学ぶときで大丈夫!まずはクラスのイメージをつかもう!
変数とはプログラミングの変数とは?意味や型など初心者にもわかりやすく解説 関数とはプログラミングの関数(function)とは?定義もわかりやすく説明!

プログラミングにおける「インスタンス」とは

インスタンスとは、クラスで設計したプログラムを実体化したものです。

さきほど定義した「Character」クラスを使って、この「インスタンス(実体)」を作ることができます。

これをプログラミング用語では、「インスタンスを生成する」といいます。

インスタンスの使い方

では、Characterクラスの「インスタンス」を生成してみましょう。

インスタンス生成
# インスタンスを生成する
Character.new

インスタンスの生成もプログラミング言語によって多少違ってきますが、「クラス名.new」や「new クラス名」のように書くことで簡単に生成できます。

次に、生成したインスタンスのプロパティを使ってみましょう。

クラスのプロパティ使用例
# インスタンスを生成し、変数に代入
kitsune = Character.new

# プロパティを設定
kitsune.name = 'キツネ'
kitsune.hp = '100'
kitsune.power = '10'

# プロパティの値「キツネ」「100」「10」が出力される
kitsune.name
kitsune.hp
kitsune.power

まずは生成したインスタンスを変数に代入して、いつでも使える状態にしておきます。

あとは「インスタンス.プロパティ」と書けば、プロパティに値を代入したり出力したりすることが簡単にできます。

では、最後にクラスのメソッドを使ってみましょう。

クラスのメソッド使用例
# インスタンスを生成し、変数に代入
kitsune = Character.new

# メソッドを実行
kitsune.fight()
kitsune.escape()

クラスで定義したメソッドも、「インスタンス.メソッド」で簡単に呼び出すことができます。

クラスやインスタンスを使うメリット

ここまでクラスやインスタンスの使い方を見てきましたが、メリットがイマイチわからないという方もいるでしょう。

そんな方は、クラスを使わないでキャラクターをたくさん作るときのことを考えてみましょう。

もしクラスがなければ、キャラクターが増えるたびに、パラメータや動きの記述をキャラクターの数だけ書かなくてはいけませんよね。

どれも似たような内容なのに毎回書かなきゃいけないなんて、めちゃくちゃ面倒だと思いませんか?

できるだけ共通で使う部分は、使いまわしたいと思うはずです。というか思ってください!

これは、「DRY(Don’t Repeat Your Self:繰り返しを避ける)」という、プログラマーの基本的な考え方の1つです。

プログラマーは「楽をするための努力は惜しまない」と覚えておこう!

まとめ

  • クラスは「設計図」である
  • クラスは「プロパティ」と「メソッド」を持っている
  • クラスを定義するとインスタンスが生成できる
  • インスタンスがあれば、プロパティとメソッドを使える

クラスやインスタンスの使い方について紹介しました。

細かい書き方は、プログラミング言語によって違いますが、どれも似たような構成になっています。

クラスやインスタンスは、プログラミングをするうえで必ず覚えなくてはいけないので、理解できるまで何度も読み直してください。

といっても、クラスやインスタンスの理解は、プログラミング初心者にとって挫折ポイントになるくらい難しいです。

もし、どうしても独学でわからないようであれば、無理せずプログラミングスクールなどを利用して、講師に教えてもらいましょう。

【エンジニア講師が比較】プログラミングスクールのおすすめと選び方【エンジニア講師が比較】プログラミングスクールのおすすめと選び方

1人で黙々と勉強し続けたからといって、絶対にエンジニアになれるわけではありません。むしろ、遠回りな学習方法になっている可能性もあります。

自分でも「無理してるな」と感じるのであれば、ほかのやり方を考えてみるのも1つの手だと思います。

またね、キツネ(@kitaaaa_kitsune)でした!

【プログラミング入門】初心者向けおすすめ学習ステップ【プログラミング入門】おすすめの基礎知識やプログラムの基本
テキストのコピーはできません。