出会ったPython(二):オブジェクト向け

2061 ワード

一、クラス
クラスを作成するには
 class Person():
       pass

インスタンスを作成するには
variable = Person()

名前やageをバインドするなど、インスタンスに属性をバインドします.
   def __init__(self,name,age):
        self.name = name
        self.age = age

ケース
class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age
ba = Person('python',10)
print(ba.name,ba.age)

クラス内のカプセル化方法:印刷方法を追加printPerson(self)
class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age
ba = Person('python',10)

def printPerson(self):
    print(self.name,self.age)

メソッドを呼び出す
printPerson(ba)

二、私有変数
Pythonでは、変数の前に2つの下線__を付け、すなわち、Javaのprivateに相当するプライベート変数です.以下にnameをプライベートに設定し、ageが変わらないとname外部に直接アクセスできません.
 def __init__(self,name,age):
        self.__name = name
        self.age = age

外部がプライベート変数を取得する必要がある場合_名前、Personクラスでget_を定義できますname()メソッドは、Javaのgetメソッドに相当します.
class Person():
    def __init__(self,name,age):
        self.__name = name
        self.age = age
#get  
    def get_name(self):
        return self.__name
ba = Person('python',10)
print(ba.get_name())

外部がプライベート変数を変更する必要がある場合_name、クラスでset_を定義することもできますname()メソッドはjavaのsetメソッドに相当し、以下のコードが見られ、変数baのname=pythonを初期化し、ba.set_name=java、最後に印刷された結果name値は「java」、例えば:
class Person():
    def __init__(self,name,age):
        self.__name = name
        self.age = age
#get  
    def get_name(self):
        return self.__name
#set  
    def set_name(self,name):
        self.__name = name

ba = Person("python",1)
ba.set_name("java")
print(ba.get_name())

三、継承
継承とは、親Animal、子Cat、Catなどの子が親を継承する特徴と動作を指します.
class Cat extends Animal{
}

Python版
class Cat(Animal):

四、多態
Pythonの継承は多態の思想とJavaのものと変わらない.多態とは、同じ行為が複数の異なる表現形式または形態を有する能力を指す.