オブジェクト向け
オブジェクト向け
1.クラスとインスタンス
class(クラス):簡単に言えば「親」であり、オブジェクトから共通点を見つけます.
object(オブジェクト):実世界にエンティティ(インスタンス)をオブジェクト(オブジェクト)として存在する
ex1. '「りんご」は等級で、「昨夜食べた5つのりんごのうち2番目」は実例で、対象です.
2.変数とメソッド
実世界に存在するエンティティ(インスタンス)->オブジェクト(オブジェクト)
オブジェクトの共通点を概念的に要約する->クラス(class)
self
selfとは、クラス内のオブジェクトを指します.JaneとMaryは同じ攻撃方法を持っているので、それらを区別するために使用され、方法を定義する際にselfというパラメータを使用していると考えられています.
3.継承
オブジェクト向けプログラミングのコアコンセプトの1つを継承します.継承は、あるクラスが別のクラスを継承する性質です.クラスを作成するときは、すべてのクラスを最初から作成する必要はありません.コア属性を持つ他のクラスから継承できます.
今度は学生というクラスを作ります.学生も人間なので、人間が持つ様々な性質や行為があり、Personという等級を継承し、目鼻口腕の再使用の面倒を減らす.
オブジェクト内のオブジェクトをコードで記述しましょう.(ゾウを冷蔵庫に入れる方法^^)
冷蔵庫のドアを開けて、食べ物を入れて、ドアを閉める方法があります.
Fridge,Foodはクラスです.
5.特別な方法
メソッドとは、クラスを作成しながら作成した関数で、defの後ろに表示されます.
作成方法を使用するには、オブジェクトを使用します.メソッド()と同じ形式で呼び出されます.
これらの基本的な方法を除いて、いくつかの特別な方法を理解しましょう.
Initメソッド(初期化)
initという方法もあります初期化メソッドとも呼ばれます.
クラスのオブジェクトを作成するときに自動的に呼び出され、そのオブジェクトが持つさまざまな性質を決定します.
初期化方法では変数を直接使用しても構わないが,setDataメソッドは既に作成されているので理解が必要である.これからは、ブックオブジェクトを作成するときに、次のように3つのパラメータを渡す必要があります.
ソース:https://wikidocs.net/
1.クラスとインスタンス
class(クラス):簡単に言えば「親」であり、オブジェクトから共通点を見つけます.
object(オブジェクト):実世界にエンティティ(インスタンス)をオブジェクト(オブジェクト)として存在する
ex1. '「りんご」は等級で、「昨夜食べた5つのりんごのうち2番目」は実例で、対象です.
class Singer: # 가수를 정의
def sing(self): # 노래하기 메서드 (클래스 내부에 정의된 함수를 메서드라고 함)
return "LALALA"
taeji = Singer() # Singer()라는 클래스를 taeji라는 객체에 넣기
taeji.sing() # 객체.sing (메서드는 이렇게 객체.메서드)
>> "LALALA"
singメソッドはSingerというクラスの挙動を定義する.Singerクラスを作成し、taegiという名前のオブジェクトを作成します.인스턴스 = 클래스()
ricky = Singer()
ricky.sing()
>> "LALALA"
rickyという名前のオブジェクトにSingerというクラスを含める方法を使えば同じようにLALAを返却します2.変数とメソッド
実世界に存在するエンティティ(インスタンス)->オブジェクト(オブジェクト)
オブジェクトの共通点を概念的に要約する->クラス(class)
class Amazon:
strength = 20
dextretiy = 25
vitality = 20
energy = 15
def attack(self):
return "WOW"
Amazonクラスが持つ力、技術、体力、エネルギーの4つの性質は変数で表される.攻撃という行為は方法によって表現されている.import diablo2
jane = diablo2.Amazon()
mary = diablo2.Amazon()
ジェーンとマリーはAmazonクラスのオブジェクトです.Amazonに必要な4つの素質を備えています.jane.strength
>> 20
jane.attack()
>> "WOW"
オブジェクト(Jane)はクラスで定義された変数(強度、エネルギー...)です.と方法(攻撃).ただし、メソッドを定義する場合と、メソッドを使用する場合とでは違います.Amazonクラスでメソッドを定義するときにdef attack(self):というselfパラメータを受け取り、Janeオブジェクトのメソッドを呼び出すときにattack()と呼ぶ.この部分は本当に混同されています.self
selfとは、クラス内のオブジェクトを指します.JaneとMaryは同じ攻撃方法を持っているので、それらを区別するために使用され、方法を定義する際にselfというパラメータを使用していると考えられています.
def exercise(self):
self.strength += 2
self.dexterity += 3
self.vitality += 1
この方法は訓練後の力、技術、体力の向上を示している.import diablo2
eunhye = diablo2.Amazon() # eunhye라는 객체에 넣어줌
eunhye.exercise() # 메서드 호출 (self 안써줌 - 메서드 호출)
eunhye.strength
>> 22
こうして+2パワーになって223.継承
オブジェクト向けプログラミングのコアコンセプトの1つを継承します.継承は、あるクラスが別のクラスを継承する性質です.クラスを作成するときは、すべてのクラスを最初から作成する必要はありません.コア属性を持つ他のクラスから継承できます.
class Person:
eyes = 2
nose = 1
mouth = 1
ears = 2
arms = 2
legs = 2
def eat(self):
print("뇸뇸")
def sleep(self):
print("콜콜")
def talk(self):
print("쪼잘쪼잘")
Personとは普通の人のことです.目も鼻も口も四肢もあり、食べたり寝たりしておしゃべりをしています.今度は学生というクラスを作ります.学生も人間なので、人間が持つ様々な性質や行為があり、Personという等級を継承し、目鼻口腕の再使用の面倒を減らす.
class Student(Person): # Person이라는 클래스를 상속받은 것. 저기 괄호에 넣어주면 상속받았단 것!
def study(self):
print("공부!")
では、本物のStudioクラスがPersonクラスを継承しているかどうか、同じ性質を持っているかどうかを確認しなければなりません.park = Person() # 클래스를 객체에 넣어주고
park.mouth # 객체.변수
>> 1
park.talk() # 객체.메서드 (요건 메서드 호출이니까 self필요없고)
>> "쪼잘쪼잘"
lee = Student() # Student 클래스 객체에 넣어주고
lee.mouth # 객체.변수
>> 1
lee.talk()
>> "쪼잘쪼잘"
ここでもう一つ作ろう!lee.study() # 객체.메서드()
>> "공부!"
4.オブジェクト内のオブジェクトオブジェクト内のオブジェクトをコードで記述しましょう.(ゾウを冷蔵庫に入れる方法^^)
class Fridge:
def __init__(self):
self.isOpened = False
self.foods = []
def open(self):
self.isOpened = True
print("냉장고 문열림")
def put(self, thing):
if self.isOpened:
self.foods.append(thing)
print("냉장고 속에 음식이 들어감")
else:
print("냉장고 문 닫혀있어서 못넣음")
def close(self):
self.isOPpened = False
print("냉장고 문 닫음")
class Food:
pass
isopenedという変数を作り、冷蔵庫の食べ物リストの食べ物を作ります.冷蔵庫のドアを開けて、食べ物を入れて、ドアを閉める方法があります.
Fridge,Foodはクラスです.
import fridge
f = fridge.Fridge() # 냉장고 클래스의 객체로 f를 만들고
apple = fridge.Food() # 음식 클래스의 객체로 apple
elephant = fridge.Food() # 음식 클래스의 객체로 elephant 만들고
f.open() # 객체.메서드
>> "냉장고 문열림"
f.put(apple) # 객체.메서드(apple) -> thing이라는 파라미터안에 apple이 들어가는 것.
>> "냉장고 속에 음식이 들어감"
f.put(elephant)
>> "냉장고 속에 음식이 들어감"
冷蔵庫fの食べ物リストに何があるか見てみましょう.f.foods
>>>[<fridge.Food instance at 007924AC>, <fridge.Food instance at 0079153C>]
冷蔵庫の対象に食べ物のリストがあります.食べ物リストには食べ物類のりんごと象の対象があります.5.特別な方法
メソッドとは、クラスを作成しながら作成した関数で、defの後ろに表示されます.
作成方法を使用するには、オブジェクトを使用します.メソッド()と同じ形式で呼び出されます.
これらの基本的な方法を除いて、いくつかの特別な方法を理解しましょう.
Initメソッド(初期化)
class Book:
def setData(self, title, price, author):
self.title = title
self.price = price
self.author = author
def printData(self):
print("제목 :" , self.title)
print("가격 :" , self.price)
print("저자 :" , self.author)
def __init__(self):
print("책 객체를 새로 만듦")
Bookクラス、setData()およびprintData()メソッド.initという方法もあります初期化メソッドとも呼ばれます.
クラスのオブジェクトを作成するときに自動的に呼び出され、そのオブジェクトが持つさまざまな性質を決定します.
import bookstore
b = bookstore.Book() # 클래스를 b 객체에
>> "책 객체를 새로 만듦"
Book()クラスでオブジェクトを作成すると、すぐに初期化メソッドが実行されます.b.setData('우리가 빛의 속도로 갈 수 없다면', '15,000원', '김초엽')
b.printData()
>> 제목 : 우리가 빛의 속도로 갈 수 없다면
>> 가격 : 15,000원
>> 저자 : 김초엽
def __init__(self, title, price, author):
self.setData(title, price, author)
print("책 객체를 새로 만듦")
オブジェクトを生成するときに、タイトル、価格、および作成者をパラメータとしてsetDataメソッドに渡します.初期化方法では変数を直接使用しても構わないが,setDataメソッドは既に作成されているので理解が必要である.これからは、ブックオブジェクトを作成するときに、次のように3つのパラメータを渡す必要があります.
reload(bookstore)
b2 = bookstore.Book('농담', '20,000원', '밀란 쿤데라')
>> 책 객체를 새로 만듦
初期化方法をもう少し熟知する必要がある.概念は簡単ですが、なぜコードの中でよく知られていないように見えますか.もっと練習すべきだ.🤔ソース:https://wikidocs.net/
Reference
この問題について(オブジェクト向け), 我々は、より多くの情報をここで見つけました https://velog.io/@majaeh43/객체지향テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol