클래스란?
객체를 생성하기 위한 설계도로 데이터(멤버 변수)와 데이터를 처리하는 함수(메서드)를 하나의 단위로 묶어, 관련된 기능과 데이터를 객체로 만들 수 있게 해준다.
멤버 변수: 클래스 내에 정의된 데이터. 객체의 상태를 저장
메서드: 클래스 내에 정의된 함수. 객체의 동작을 정의
생성자(init): 객체가 생성될 때 호출되는 특별한 메서드로, 객체의 초기 상태를 설정
소멸자(del): 객체가 삭제될 때 호출되는 메서드로, 객체가 사용하던 리소스를 정리한다.
class 클래스명:
# 클래스 변수 (전역 변수처럼 사용)
멤버변수 = 초기값
# 생성자 메서드 (__init__)
def __init__(self, 매개변수들):
# 인스턴스 변수 (객체가 개별적으로 가질 변수)
self.인스턴스변수 = 값
# 메서드 (함수)
def 메서드명(self, 매개변수들):
# 메서드 내용
pass
kor = 100 # 전역 변수
def abc():
print('일반함수')
class My:
kor = 90 # 클래스 변수
def abc(self): # 인스턴스 메서드
print('메서드')
def show(self):
print(self.kor) # 클래스 변수 접근
print(kor) # 전역 변수 접근
self.abc() # 인스턴스 메서드 호출
abc() # 전역 함수 호출
m = My() # 객체 생성
m.show() # 메서드 호출
class Student:
old = -1 # 클래스 변수
def __init__(self, name, old=17): # 생성자
self.name = name # 인스턴스 변수
self.old = old # 인스턴스 변수
def print_name(self): # 메서드
print(self.name)
def print_old(self):
print(self.old)
s = Student("철수")
s.print_name() # 철수의 이름 출력
print('철수의 나이는 ', s.old) # 철수의 나이 출력
class Car:
handle = 1 # 클래스 변수
speed = 0
airBag = 0
color = '파랑'
def __init__(self, airBag, name): # 생성자
print('초기화작업')
self.airBag = airBag # 인스턴스 변수
self.name = name # 인스턴스 변수
def __del__(self): # 소멸자
print('객체종료시 자동으로 수행')
def SetSpeed(self, speed): # 메서드
self.speed += speed
def GetSpeed(self):
return self.speed
# 객체 생성 및 속성 접근
car1 = Car(1, 'tom')
print(car1.handle, car1.speed, car1.airBag) # 1 0 1
car2 = Car(3, 'james')
print(car2.handle, car2.speed, car2.airBag) # 1 0 3
car1.color = '검정'
print(car1.name, car1.color) # tom, 검정
car2.color = '노랑'
print(car2.name, car2.color) # james, 노랑
# 메서드 사용
car1.SetSpeed(70)
print('현재 스피드는 car1', car1.GetSpeed()) # 70
print('현재 스피드는 car2', car2.GetSpeed()) # 0