codestates / codestates/ds-blog
[김지연]파이썬의 객체지향프로그래밍
- Dominant language
- No language data
- Stars
- 2
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
## 파이썬의 객체 지향프로그래밍(Object Oriented Programming)
#### 객체지향프로그래밍으로서 클래스를 사용하는 방법에 대해 알아보자
객체지향프로그래밍(Object Oriented Programming)은 말그대로 객체를 우선시 하는 프로그래밍으로. 구체적이고 실제로 있는 것들의 관계 등을 표현할 수 있게끔 도와준다. 방대한 양의 코드를 수정하거나 유지보수 할 때 객체지향프로그래밍을 유용하게 이용할 수 있다.
파이썬의 객체지향프로그래밍에서는 클래스, 인스턴스, 객체, 메서드와 같은 표현들이 등장한다.
### 용어
- 클래스(class) : 같은 모양을 찍어내는 틀과 같은 것으로 같은 속성의 데이터를 가진 객체들을 만들어 낼 수 있다. (클래스는 캐멀케이스(camel case)로 표현한다.)
- 객체(object) : 프로그래밍에서 여러 가지 속성을 갖고 있는 대상을 나타낸다.
- 인스턴스(instance) : 클래스에서 만들어진 객체를 뜻한다.
- 메소드(method) : 클래스 내부에서 사용하는 함수로 주로 첫 번째 매개변수에는 self를 사용한다.
### 추상화(abstract)
세상에 존재하는 것들은 많은 속성을 가지고 있다. 개를 예로 들자면 견종, 나이 , 털 색깔 등이 있을 것이다. 하지만 속성 중엔 견종, 털 색깔 같은 개를 나타내는데 중요한 데이터도 있지만 털의 갯수와 같은 그닥 중요하지 않은 정보도 있다. 이처럼 필요한 속성들을 이용하여 객체를 표현하는 것을 추상화라고 한다.
### 클래스의 정의
> 클래스 이름(여기서는 Writer)을 정의한다.
```
class Writer():
pass
```
### 인스턴스 속성 부여(생성자)
> 생성자는 __init__ 함수를 사용하여 클래스에서 사용할 속성을 설정 해준다.
```
def __init__(self, name, title):
self.name = name
self.title = title
```
### 메소드(인스턴스 함수)
> 클래스 내부에서 사용하는 함수이다.
```
def writer_title(self):
print("{}의 대표작은 {}이다.".format(self._name, self._title))
```
### 객체 생성
인스턴스명 = 클래스명()을 사용하여 객체를 생성할 수 있다.
```
hemingway = Writer(‘Ernest Hemingway’, “노인과 바다”)
fitzgerald = Writer(‘F. Scott Fitzgerald, “위대한 개츠비”)
plath= Writer(‘Sylvia Plath’, “벨 자”)
```
### 완성 코드
```
class Writer:
def __init__(self, name, title):
self._name = name
self._title = title
def writer_title(self):
print("{}의 대표작은 {}이다.".format(self._name, self._title))
hemingway = Writer('Ernest Hemingway', '노인과 바다')
fitzgerald = Writer('F. Scott Fitzgerald', '위대한 개츠비')
plath = Writer('Sylvia Plath', '벨 자')
hemingway.writer_title()
```
#### 실행결과
Ernest Hemingway의 대표작은 노인과 바다이다.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.