3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オブジェクト指向をポケモンで理解してみよう(Python)

Posted at

#オブジェクト指向をポケモンを例にわかりやすく
pythonを勉強して、僕が理解に苦しんだのが、classの概念。
プログラミングを長年やられている方は、Rubyなどもclassの概念を持つので、理解されているかと思いますが、経験の浅い僕にはイメージし難いものでした。

参考書を何度読んでも、クラスやらメソッド、インスタンスなど正直???となることばかりで、なかなかに嫌気をさしていました。

そこで、自分なりに簡単な言葉でわかりやすくまとめたいと思い、試行錯誤した結果、昔好きだったポケモンでまとめることが自分に腑に落ちたので、共有したいと思います。

##イメージとして・・・
ポケモンってどんな「モノ」か。僕らは知っていますが、コンピューターは知りません。
なので、コンピューターに対して、ポケモンってこんなものだよと教えてあげるイメージで書いていきます。

##コード例


#Pokemonという「もの」を、コンピュータに教える
class Pokemon(object):

    #Pokemonの特徴を教える
    #名前(name)と、レベル(level)と、体力(hp)があるよ
    def __init__(self, name, level, hp):
        self.name = name
        self.level = level
        self.hp = hp


    #Pokemonに対して、させたいことを教える
    #__init__で書いた特徴を、表示させたいな
    def output(self):
        print(self.name+":初期レベル"+str(self.level)+"、初期体力"+str(self.hp))

    #ふしぎなアメを食べるとレベルが1上がる特徴を、表示させたいな
    def eat(self, food):
        if food == "ふしぎなアメ":
            self.level += 1
            print(self.name+"は、"+food+"を食べてレベルが"+str(self.level)+"になった")

#Pokemonには、ピカチュウという名前(name)の「もの」がいると、コンピュータに教える
#ピカチュウのレベル(level)は5で、体力(hp)は100なんだ
Pikachu = Pokemon("ピカチュウ", 5, 100)

#ピカチュウの特徴を表示させる
Pikachu.output()

#ピカチュウにふしぎなアメを食べさせる
Pikachu.eat("ふしぎなアメ")


>>>ピカチュウ:初期レベル5初期体力100
>>>ピカチュウはふしぎなアメを食べてレベルが6になった

#解釈


#Pokemonという「もの」を、コンピュータに教える
class Pokemon(object):

    #Pokemonの特徴を教える
    #名前(name)と、レベル(level)と、体力(hp)があるよ
    def __init__(self, name, level, hp):
        self.name = name
        self.level = level
        self.hp = hp


    #Pokemonに対して、させたいことを教える
    #__init__で書いた特徴を、表示させたいな
    def output(self):
        print(self.name+":初期レベル"+str(self.level)+"、初期体力"+str(self.hp))

    #ふしぎなアメを食べるとレベルが1上がる特徴を、表示させたいな
    def eat(self, food):
        if food == "ふしぎなアメ":
            self.level += 1
            print(self.name+"は、"+food+"を食べてレベルが"+str(self.level)+"になった")

ここで、ポケモン「Pokemon」って、どんな「モノ」で、どんなことができるのかを、コンピューターに教えてあげます。
それがまとまったものが、クラス(class)です。

ポケモン「Pokemon」ってどんな「モノ」なの?何をするの?何ができるの?など、特徴をまとめたのが、「def〜」で書かれた項目であり、メソッドと呼ばれるやつです。

##まとめ
あくまで僕がイメージしやすいようにまとめたので、きちんと理解するには不足なこともあるかもしれませんが、クラス?メソッド?などで迷ったら、参考にしてください。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?