5주차_참고 : 객체지향 프로그래밍의 기본 개념2 - dhryu60/SmartDevice_2025-1 GitHub Wiki
객체지향 프로그래밍의 기본 개념
1. 클래스 (Class)
-
정의:
클래스는 객체를 생성하기 위한 설계도로, 데이터(속성)와 이를 처리하는 함수(메서드)를 하나로 묶어 정의한 것이다. -
쉽게 말하면:
"자동차"라는 클래스를 정의하면, 이 클래스는 자동차의 속성(예: 색상, 모델명)과 기능(예: 주행, 정지)을 포함한다. 이를 통해 여러 대의 자동차 객체를 생성할 수 있다.
2. 메서드 (Method)
-
정의:
메서드는 클래스 내에 정의된 함수로, 객체의 동작이나 기능을 구현한다. -
쉽게 말하면:
자동차 클래스에서 "주행하다"는 메서드는 자동차 객체가 실제로 주행하는 동작을 수행한다.
3. 상속 (Inheritance)
-
정의:
상속은 기존 클래스(부모 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스)가 물려받아 사용하는 것이다. 이를 통해 코드의 재사용성과 확장성을 높일 수 있다. -
쉽게 말하면:
"탈것"이라는 부모 클래스를 정의하고, 이를 상속받아 "자동차", "자전거" 등의 자식 클래스를 만들 수 있다. 이때 자식 클래스는 부모 클래스의 속성과 메서드를 그대로 사용하거나, 필요에 따라 추가 또는 변경할 수 있다.
4. 메서드 재정의 (Method Overriding)
-
정의:
자식 클래스에서 부모 클래스의 메서드를 재정의하여, 자식 클래스에 맞게 동작을 변경하는 것이다. -
쉽게 말하면:
부모 클래스에서 "달리다" 메서드는 일반적인 달리기 동작을 정의하지만, 자식 클래스인 "스포츠카"에서는 이 메서드를 재정의하여 더 빠르게 달리는 동작을 구현할 수 있다.
5. 예제 코드 (Python)
# 부모 클래스 정의
class Vehicle:
def __init__(self, name, speed):
self.name = name
self.speed = speed
def move(self):
print(f"{self.name}가 {self.speed}km/h로 움직입니다.")
# 자식 클래스 정의 (Vehicle 클래스를 상속)
class Car(Vehicle):
def __init__(self, name, speed, brand):
super().__init__(name, speed)
self.brand = brand
# 메서드 재정의
def move(self):
print(f"{self.brand} {self.name}가 {self.speed}km/h로 달립니다.")
# 객체 생성 및 메서드 호출
vehicle = Vehicle("탈것", 10)
car = Car("자동차", 100, "현대")
vehicle.move() # 출력: 탈것가 10km/h로 움직입니다.
car.move() # 출력: 현대 자동차가 100km/h로 달립니다.
6. 요약
- 클래스: 객체를 생성하기 위한 설계도
- 메서드: 클래스 내에 정의된 함수로, 객체의 동작을 구현
- 상속: 기존 클래스의 속성과 메서드를 새로운 클래스가 물려받는 것
- 메서드 재정의: 자식 클래스에서 부모 클래스의 메서드를 재정의하여 동작을 변경하는 것
이러한 개념들을 활용하면 코드의 재사용성을 높이고, 유지보수를 용이하게 할 수 있다.