위의 코드에서 Person
클래스를 정의하고,
__init__
메서드를 사용하여 인스턴스 변수 name
을 초기화하고 있습니다.
그리고 Person
클래스의 인스턴스인 person
을 생성하고,
인스턴스 속성인 name
에 접근하여 값을 출력하는 예제입니다.
# 'Person' 클래스 정의
class Person:
def __init__(self, name):
self.name = name
# 'Person' 클래스의 인스턴스 생성
person = Person("John")
# 인스턴스 속성에 접근하여 값 출력
print(person.name) # 출력: John텍스트
우리 주변에는 많은 가전제품들이 있습니다.
각각의 가전제품은 브랜드, 모델, 기능 등의 특징을 가지고 있습니다.
이러한 가전제품들은 클래스(Class)라고 할 수 있습니다.
클래스는 가전제품의 설계도와 같은 역할을 합니다.
이제 우리는 특정한 가전제품 하나를 생각해봅시다.
예를 들어, '삼성' 브랜드의 '스마트 TV' 모델이고, 55인치 크기의 TV입니다.
이 TV는 클래스에 의해 만들어진 실체로서, 이를 객체(Object)라고 할 수 있습니다.
그리고 객체는 이 설계도에 의해 만들어진 실제 가전제품입니다.
클래스는 속성(브랜드, 모델, 크기 등)과
동작(전원 켜기, 채널 변경, 음량 조절 등)을 정의하고,
객체는 이러한 속성과 동작을 실제로 가지고 있습니다.
예를 들어, 클래스가 'TV'라면, 객체는 'SamsungSmartTV'일 수 있습니다.
객체는 클래스의 인스턴스(Instance)이며,
클래스에 정의된 속성과 동작을 그대로 상속받습니다.
이렇게 객체는 현실 세계의 가전제품을 모델링하고,
프로그램에서 사용할 수 있는 형태로 표현할 수 있는 개념입니다.
객체 지향 프로그래밍에서는 이러한 객체를 중심으로 프로그램을 구성하고 작성합니다.
class TV:
def __init__(self, brand, model, size):
self.brand = brand
self.model = model
self.size = size
self.power = False
self.channel = 1
self.volume = 50
def power_on(self):
self.power = True
print(f"{self.brand} {self.model} TV가 켜졌습니다.")
def power_off(self):
self.power = False
print(f"{self.brand} {self.model} TV가 꺼졌습니다.")
def set_channel(self, channel):
if self.power:
self.channel = channel
print(f"{self.brand} {self.model} TV의 채널이 {channel}번으로 변경되었습니다.")
else:
print("TV가 꺼져 있습니다. 전원을 먼저 켜주세요.")
def increase_volume(self):
if self.power:
if self.volume < 100:
self.volume += 1
print(f"{self.brand} {self.model} TV의 볼륨이 1 증가하여 현재 {self.volume}입니다.")
else:
print("TV가 꺼져 있습니다. 전원을 먼저 켜주세요.")
def decrease_volume(self):
if self.power:
if self.volume > 0:
self.volume -= 1
print(f"{self.brand} {self.model} TV의 볼륨이 1 감소하여 현재 {self.volume}입니다.")
else:
print("TV가 꺼져 있습니다. 전원을 먼저 켜주세요.")
# TV 클래스의 인스턴스 생성
tv1 = TV("삼성", "스마트 TV", 55)
tv2 = TV("LG", "올레드 TV", 65)
# 메서드 호출
tv1.power_on()
tv1.set_channel(7)
tv1.increase_volume()
tv1.decrease_volume()
tv1.power_off()