準備をしよう
下のURLをクリックして、「paiza.IO」を開いてください。
https://paiza.io/ja/projects/new
学習内容
オブジェクトとは
オブジェクトとは、抽象的な「モノ」という意味です。例えば、ゲームを作るときを考えると、主人公、敵、アイテムなどがありますが、これらはすべてオブジェクトです。
オブジェクトの基本的な仕組みは、「プロパティ」と「メソッド」です。「プロパティ」はオブジェクトの「情報」、「メソッド」は「操作」と考えることができます。
人を例にあげると、名前や年齢などがプロパティ、歩く・話すなどがメソッド、ということになります。
クラスとは
クラスとは、オブジェクトの設計図のようなものです。オブジェクトは、クラスをもとにして生成されます。たい焼きで例えると、たい焼きの鋳型がクラスで、できたたい焼きがオブジェクト、という関係です。
クラス定義
まずは、設計図を作る作業として、クラスの定義について見ていきます。
- 「class」というキーワードの後に、クラス名を指定し、「:」(コロン)をつけます。
- インデントして、中身を書いていきます。ここには、のちに紹介するプロパティとメソッドが入ります。これをまとめて、クラスのメンバとも呼びます。
オブジェクトの生成
クラスをもとに、オブジェクトを生成する方法について見ていきます。
- 「クラス名」のあとに()をつけるだけです。
- 生成したオブジェクトを保存するため、変数に代入します。
クラスとオブジェクトのおおまかな説明は以上です。次に、中身のプロパティとメソッドについて見ていきます。
プロパティ
イメージ
オブジェクトの情報のことです。
書き方
変数と同じように、「プロパティ=値」の形で指定します。
「プロパティ名=値」の形で指定します。プロパティが複数ある場合は、このセットを下に続けていきます。
具体的に見ていきましょう。
- 「Person」という名前のクラスを定義しています。
- プロパティとして「name」、「age」、「hobby」を入れて、値をそれぞれ「yamada」、「25」、「music」に設定しています。
参照方法
クラスからオブジェクトを生成したあと、オブジェクト名に「.」をつけて、プロパティを指定します。
具体的に見てみましょう。
「Person」オブジェクト「p1」の「name」というプロパティを参照しています。「yamada」というデータがありますから、「person.name」全体が「yamada」に化け、コンソールに表示されます。
練習
paiza.IOに、以下のコードを入れて下さい。
# クラス定義
class Person:
# プロパティ
name = "yamada"
age = 25
hobby = "music"
# オブジェクトの生成
p1 = Person()
# プロパティの参照
print(p1.name)
実行結果
コードを実行してみましょう。
yamada
メソッド
イメージ
オブジェクトの操作のことです。ここには必ず、関数を設定します。
オブジェクト内に設定された関数を、メソッドと呼びます。
書き方
注意なのは、メソッド名の後ろの()に「self」を入れることです。これは自身のプロパティをメソッド内で利用する必要になりますが、利用しなくても、必ずあ()内に記述しておかないと文法エラーになります。
呼び出し方法
具体的に見ていきましょう。
「Person」オブジェクト「p1」の「greet」というメソッドを呼び出しています。「print(“hello”)」という処理がありますから、実行されてコンソールに「hello」と表示されます。
練習
paiza.IOに、以下のコードを入れて下さい。
# クラス定義
class Person:
# メソッド
def greet(self):
print("hello")
# オブジェクトの生成
p1 = Person()
# メソッドの呼び出し
p1.greet()
実行結果
コードを実行してみましょう。
hello
コード全体
練習
# クラス定義
class Person:
# プロパティ
name = "yamada"
age = 25
hobby = "music"
# メソッド
def greet(self):
print("hello")
# オブジェクトの生成
p1 = Person()
# プロパティの参照
print(p1.name)
# メソッドの呼び出し
p1.greet()
実行結果
yamada
hello
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
まとめ
以上になります。今回はオブジェクトについてお伝えしました。
オブジェクトは本格的にアプリ開発をしていく上で必須の概念になります。クラスやプロパティ、メソッドなどいろいろな言葉が出てきて初めは難しいですが、だんだん慣れていきます。
概念と使い方を理解したら、どんどん自分で書いてみてください。自然と身についていきます。