파이썬 클래스의 예시

Seong Hyeon Kim·2023년 8월 16일
0

개인공부

목록 보기
21/23

클래스 인스턴스 생성하기

위의 코드에서 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()
profile
삽질도 100번 하면 요령이 생긴다. 부족한 건 경험으로 채우는 백엔드 개발자

0개의 댓글