객체지향 프로그래밍(OOP) 소개
객체지향 프로그래밍
(Object-Oriented Programming, OOP)은 은 프로그래밍 방법 중 하나로, 현실의 사물이나 개념을 프로그램 안에서 객체(Object)
로 만들고, 이 객체들이 서로 소통하며 소프트웨어를 만드는 방식을 뜻합니다.
객체지향 프로그래밍의 핵심 개념
객체지향 프로그래밍은 데이터
(속성)와 데이터를 처리하는 기능
(메서드)을 하나로 묶어 객체
로 관리하는 방식입니다.
주요 개념은 다음과 같습니다.
-
객체(Object)
: 객체는데이터
(속성, Property)와 데이터를 처리하는기능
(메서드, Method)을 합친 것입니다. 예를 들어, 자동차라는 객체는 색상, 모델, 속도 같은 속성(데이터)과 가속하기, 정지하기 같은 기능(메서드)을 가질 수 있습니다. -
클래스(Class)
: 클래스는 자동차의 설계도와 같이, 객체를 만들기 위한설계도
나틀
과 같습니다. 클래스는 객체들이 공통으로 갖는 속성과 메서드를 정의하며, 클래스에서 만들어진 객체를인스턴스(Instance)
라고 부릅니다. -
상속(Inheritance)
: 상속은 한 클래스(부모 클래스)의 속성과 메서드를 다른 클래스(자식 클래스)가 물려받아 사용하는 것을 뜻합니다. 이를 통해 코드의 재사용성을 높일 수 있습니다. -
캡슐화(Encapsulation)
: 캡슐화는 객체의데이터(속성)
를 외부에서 직접 접근하지 못하도록 숨기고, 객체의메서드
를 통해서만 데이터를 조작할 수 있도록 하는 것을 뜻합니다. 이를 통해 데이터를 안전하게 보호할 수 있습니다. -
다형성(Polymorphism)
: 다형성은 같은 이름의 메서드가 클래스에 따라 다른 방식으로 동작할 수 있는 것을 뜻합니다. 이를 통해 코드가 더 유연하고 재사용 가능하게 됩니다.
클래스와 객체의 관계는 자동차 설계도와 자동차, 또는 요리 레시피와 요리와 같습니다.
OOP 사용 예시
아래 코드는 Animal
클래스를 정의하고, Animal
클래스를 상속받아 Dog
클래스를 정의합니다.
Animal
클래스는 name
속성을 가지며, speak
메서드를 정의합니다.
Dog
클래스는 Animal
클래스를 상속받아 speak
메서드를 재정의합니다.
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()) # 출력: 바둑이가 멍멍!
객체지향 프로그래밍(OOP)
의 핵심 개념 중 하나로, 객체의 데이터(속성)를 외부로부터 숨기고 객체의 메서드만을 통해 접근할 수 있게 하는 개념은 무엇인가요?
상속
다형성
캡슐화
클래스
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
실행 결과