クラスとオブジェクト


クラスとオブジェクト


オブジェクト向けプログラミング


オブジェクトとオブジェクトとの相互関係を中心に作成された
  • プログラムは、オブジェクト向けのプログラム設計である.
  • カテゴリ


    これは、
  • オブジェクトが有する共通の属性およびメソッドによって定義される設計図面を意味する.
  • オブジェクト


  • 属性(プロパティ)とメソッド(動作)があり、名前付きエンティティ、クラスを実体化またはインスタンス化できるオブジェクト.

  • ツールバーの
    キーワード
  • selfとともに使用する.


  • class Person: # 클래스는 첫글자만 대문자로 해주면 됨(객체와 클래스를 구분하기 위해서)
        def __init__(self): # 클래스 안에 위치해 있는 함수 = 메소드
            # __앞,뒤에 있으면 특수한 목적
            # init은 생성자(constructor): 객체생성시 자동 호출됨, 속성을 정의하여 초기화 하기 위해 주로 사용함!
            self._hakbun = ""
            # self다음 점 찍고 나오는 것을 "속성"이라고 함
            self._irum = ""
            print("객체 생성")
        def setHakbun(self, hakbun):
            self._hakbun = hakbun
               # 속성      #로컬변수
            print("학번 변경")
        def setIrum(self, irum):
            self._irum = irum
            print("이름변경")
        def printData(self):
            print("학번 : ", self._hakbun, "이름 : ", self._irum)
    
    if __name__ == "__main__":
        obj1 = Person() # 클래스 이름을 이용해 객체 만듬
        obj1.setHakbun("A001") #obj1은 글로별 변수
        obj1.setIrum("이기자")
        obj1.printData()
    構造関数と方法

    メソッドはオブジェクトに保存されました

    「A 001」はhakbunに保存されます
    hakbunという名前の領域変数に出力します.
    ゾーン変数が消えました
    「勝ちましょう」はirumに格納されています
    irumという領域変数に出力すると
    ゾーン変数が消えました


    オブジェクトを作成すると、アドレスが保存されます.
    selfは作成されたオブジェクトのアドレスです

    self

  • selfは、オブジェクト自体への参照(=アドレス)である.
  • オブジェクトの作成(オブジェクト)

  • 形式)変数名=クラス名()
  • ex) obj = Person()
    obj.setHakbun("A001")
    obj.setIrum
  • hakbun,irum=>プロパティ
    setHakbun()、serium()、printData()=>メソッド(=関数)

    作成者と消滅者


    オブジェクトが失われると、
    1.参照のReferrenceがない場合
    2.プログラム終了時

    Q.プログラムが終了する前に、ソースプログラムが消滅者を呼び出す必要がある状況を知りたい.
    A.空間が割り当てられた場合、予期せぬ事態が発生し、プログラムが終了すると、他の空間を割り当てるプログラムは永遠に一部の空間を使用できなくなる可能性があるので、消滅者として準備しなければならない.
    Q.いつでも消滅者を使ってもいいですか?
    A.消滅者を別途割り当てる場合は、消滅者を使用することが望ましい.
    ただし、作成したオブジェクトが書き換えられないと判断した場合は、消滅者を追加しなくてもdelオブジェクトのみが削除されます.削除すると、別のワークスペースとして使用できます.
    Q.消灭者を使って削除する対象は一度に1つ削除しますか?
    A.上記コードについてobjは削除される

    objオブジェクトは削除されましたが、objを作成できません.

    このようにすることができます

    oj 1=Person()オブジェクトの作成中にエラーが発生しました.
    どうすれば間違いないの?
    C言語は複数のジェネレータを作成することができる.
    Pythonはジェネレータを作成できます.

    メソッドオーバーロード
    メソッド名の定義は同じですが、異なるパラメータが与えられます.
    名前は同じですが、パラメータ形式で識別できます.
    Pythonではメソッドオーバーロードはサポートされていません.
    2つのオプションから1つを選択する必要があります
    objとobj 1

    パラメータのないobjに入れる
    Q.オブジェクトのメンバー変数はunderbarが一般的ですか?