1) 객체 = 속성 + 기능
2) 객체 만들기(생성)
(1) 클래스에서 속성과 기능을 정의
(2) 객체 생성을 위한 생성자 호출 : 클래스(붕어빵틀)로부터 무한개의 객체(붕어빵) 생성가능
3) 객체 사용의 장점
객체생성 : 클래스 이름과 동일한 생성자를 호출
키워드() : '키워드' 클래스의 생성자를 호출 > init 매서드 호출
키워드('속성을 초기화하는 매개변수') : 속성값 초기화
레퍼런스 변수 :
car1 = Car('red', 200)
car2 = Car('Blue', 300)
객체를 변수에 담아서 기능에 접근 : car1.doStop()
1) 기능에 접근 ★
myPC2.PrintPCinfo()
2) 속성에 접근 > 속성 변경하기 ★
myPC.cpu = 'i9'
myPC.memory = '64'
myPC.ssd = '1T'
myPC.PrintPCinfo()
최솟값 최대값 빼기 - 정렬 - 앞마지막 빼기
plaCopSco.sort()
plaCopSco.pop(0)
plaCopSco.pop()
상속시 상속한 클래스의 기능 모두 사용 가능
많이 안하는걸 권장
하위클래스에서 상위 클래스의 매서드를 재정의
(하위클래스에게 상위클래스의) 매서드 구현을 강요하는 것.
해당 기능을 클래스에 알맞게 고쳐 쓰기 위해 추상클래스를 사용함.
★from abc import ABCMeta
★from abc import abstractmethod
class AirPlane(metaclass=ABCMeta):
★@abstractmethod
def flight(self):
pass
class Airliner(AirPlane):
def __init__(self, c):
self.color = c
def flight(self):
★print('시속 400km/h 비행!!')
ap1 = Airliner('red')
ap1.flight()
ap1.forward()
ap1.backward()
결과

#객.변!
#객.함!
class Blackbox :
pass
b1 = Blackbox() #b1 객체 생성 / b1은 클래스 BlackBox의 인스턴스
b1.name = '까망이' #변수 선언 (b1이라는 객체에 name이라는 변수 선언)
print(isinstance(b1, BlackBox)) # True
class Blackbox :
def __init__(self, name, price) : #init : 객체생성시 자동호출
self.name = name
self.price = price
b1.BlackeBox('까망이', 10000)
print(b1.name, b1.price) #까망이, 10000
b2.BlackeBox('소망이', 20000)
print(b1.name, b1.price) #소망이, 20000
self
1. 메소드를 정의할 때 처음 전달값은 반드시 self
2. 메소드 내에서는 self.name과 같은 형태로 멤버변수를 사용