객체지향 프로그래밍(OOP) 소개
객체지향 프로그래밍
(Object-Oriented Programming, OOP)은 프로그래밍 방법론 중 하나로 실세계의 사물이나 개념을 프로그램 내의 객체
로 표현하고, 이들 객체 간의 상호작용을 통해 소프트웨어를 개발하는 방식입니다.
객체지향 프로그래밍의 핵심 개념
객체지향 프로그래밍은 데이터
(속성, Property)와 데이터를 처리하는 기능
(메소드, Method)을 객체
로 묶어서 관리합니다. 핵심 개념은 다음과 같습니다.
-
객체(Object): 객체는
데이터(속성)
와 그 데이터에 대한 조작을 수행하는함수(메서드)
를 결합한 것입니다. 예를 들어 자동차라는 객체는 색상, 모델, 속도 등의 속성과 가속하기, 정지하기 등의 메서드를 가질 수 있습니다. -
클래스(Class): 클래스는 객체를 생성하기 위한
템플릿
또는설계도
입니다. 클래스는 특정 유형의 객체들이 공유하는 속성과 메서드를 정의합니다. 클래스로부터 생성된 객체를인스턴스(Instance)
라고 합 니다. -
상속(Inheritance): 한 클래스(부모 클래스)의 속성과 메서드를 다른 클래스(자식 클래스)가 물려받아 사용할 수 있게 하는 것입니다. 이를 통해 코드의 재사용성을 높일 수 있습니다.
-
캡슐화(Encapsulation): 객체의 데이터(속성)를 외부로부터 숨기고, 객체의 메서드만을 통해 이 데이터에 접근할 수 있게 하는 것입니다. 이를 통해 외부로부터 객체를 보호합니다.
-
다형성(Polymorphism): 다형성은 같은 이름의 메서드가 다른 클래스에서 다른 행동을 할 수 있게 하는 특성입니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.
클래스와 객체 사이의 관계는 자동차 설계도와 자동차, 요리 레시피와 요리와 같이 생각할 수 있습니다.
OOP 사용 예시
class Animal: # Animal 클래스 정의
def __init__(self, name): # 생성자 메서드
self.name = name # name 속성 정의
def speak(self): # speak 메서드 정의
pass
class Dog(Animal): # Dog 클래스 정의
def speak(self): # speak 메서드 재정의
return f"{self.name}가 멍멍!" # name 속성 사용
# 객체 생성 및 사용
my_dog = Dog("바둑이")
print(my_dog.speak()) # 출력: 바둑이가 멍멍!
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!