42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
# 객체 지향 프로그래밍
|
|
**객체 지향 프로그래밍(OOP)**은 실제 세계의 개념을 프로그램 안에 모델링하여 복잡한 문제를 해결하는 데 효과적인 프로그래밍 패러다임입니다. 파이썬은 객체 지향 프로그래밍을 강력하게 지원하는 언어 중 하나입니다.
|
|
|
|
* 객체(Object): 실제 세계의 사물이나 개념을 프로그램 안에서 표현한 것입니다. 각 객체는 고유한 속성(attribute)과 행동(method)을 가지고 있습니다.
|
|
* 클래스(Class): 객체를 생성하기 위한 템플릿입니다. 클래스는 객체가 가질 속성과 행동을 정의합니다.
|
|
* 인스턴스(Instance): 클래스를 바탕으로 생성된 실제 객체를 의미합니다.
|
|
|
|
## 클래스 정의
|
|
```python
|
|
class MyClass:
|
|
# 클래스 변수
|
|
class_variable = "This is a class variable"
|
|
|
|
# 생성자
|
|
def __init__(self, name, age):
|
|
self.name = name
|
|
self.age = age
|
|
|
|
# 파괴자
|
|
def __del__(self):
|
|
...
|
|
|
|
# 메소드
|
|
def greet(self):
|
|
print(f"안녕하세요, 저는 {self.name}입니다.")
|
|
```
|
|
* `__init__` 메소드: 객체가 생성될 때 자동으로 호출되는 메소드로, 인스턴스 변수를 초기화하는 데 사용됩니다.
|
|
* `self`: 메소드 내에서 자신을 가리키는 참조 변수입니다.
|
|
|
|
## 객체 생성 및 사용
|
|
```python
|
|
# 객체 생성
|
|
person = MyClass("홍길동", 30)
|
|
|
|
# 속성 접근
|
|
print(person.name) # 홍길동
|
|
|
|
# 메소드 호출
|
|
person.greet() # 안녕하세요, 저는 홍길동입니다.
|
|
```
|
|
|