자료의 출처는 엘리스 AI 트랙(https://aitrack.elice.io/courses/) '도레미 파이썬' 이며, 학습 후 정리한 내용입니다.
⚡️올바르지 않은 내용이 있을 경우 댓글로 남겨주시면 감사하겠습니다.⚡️
수강 목표
- 객체가 무엇인지 이해한다.
- 클래스와 인스턴스 사이의 관계를 이해한다.
- 객체지향 프로그래밍이 도입된 이유를 이해한다.
객체의 세계로
객체지향 프로그래밍
객체
성질(변수)과 할 수 있는 행동(함수)이 담긴 자료
클래스와 인스턴스
클래스(class)
객체를 만들 수 있는 틀
클래스 생성
class 클래스 이름:
class Human:
필드(Field)
객체가 가지고 있는 성질
= 객체가 가지고 있는 변수
class Human:
name = "Bob"
age = 10
메서드(Method)
# 짝꿍이 있는 함수 (짝꿍 = 객체)
객체가 할 수 있는 행동
= 객체가 할 수 있는 함수
class Human;
def exercise(self):
print("스쿼시!")
self
메서드라면 가져야하는 첫번째 매개변수
메서드에서 self는 객체 자신을 의미하며, 메서드가 호출될 때 self 자리에 객체 자신을 인자에 넣는다.
인스턴스(Instance)
객체를 만들 수 있는 틀(클래스)로 찍어낸 객체
클래스와 인스턴스
붕어빵 틀 = 클래스
팥 붕어빵, 슈크림 븅어빵 = 인스턴스
인스턴스 만들기
인스턴스 이름 = 클래스 이름()
bobby = Human()
인스턴스의 변수(#필드)
인스턴스.변수
bobby = Human()
bobby.name # Bob
bobby.age # 10
인스턴스의 메서드
인스턴스.메서드()
bobby = Human()
bobby.exercise() # 스쿼시!
왜 객체지향 프로그래밍인가?
기존의 코딩스타일로는 표현할 수 없었던 상황을 표현 가능하게 해준다.
포O몬 클래스 생성
- 포O몬이라면 가져야할 특징(필드)은? 이름, 체력, 타입 등
- 포O몬이라면 할 수 있는 능력(행동)은? 각 포O몬의 기술
클래스 선언, 변수와 메서드 추가
class Poxxmon:
p_name = ""
p_hp = 0
p_type = ""
def skill(self):
pass
피O츄 클래스 생성
피O츄의 특징은? '피O츄', '성비 5:5'. '전기'
피O츄의 능력은? 10만 볼트!
Poxxman 클래스를 상속하는 Pixxchu 클래스 생성
class Pixxchu(Poxxmon):
p_name = "Pixxchu"
p_hp = 50
p_type = "Electric"
def skill(self):
print("10만 볼트!")
피O츄 인스턴스 생성
Pixxchu 클래스로 찍어 낸 pixx 인스턴스
pixx = Pixxchu()
pixx.skill() # 10만 볼트!
print(pixx.p_hp) # 50
왜 객체지향 프로그래밍인가?
상속, 다형성, 캡슐화를 통해
코드의 재사용이 쉽고
우리 실생활을
더 잘 나타낼 수 있기 때문이다!
상속: 한 클래스의 내용을 다른 클래스가 이어받는 것
class Car:
type = "자동차"
class Hyundai(Car):
pass
sonata = Hyundai()
print(sonata.type) #자동차
# 마치 부모와 자식처럼 코드를 관리 가능
# 현실 세계의 객체 구조와 유사
다형성: 같은 모양의 코드가 다른 역할을 하는 것
class Car:
type = "자동차"
horsePower = 100
class Lamborghini(Car):
horsePower = 700
aventador = Lamborghini()
print(aventador.type) #자동차
print(aventador.horsePower) #700
# class마다 가지는 값이 다르다.
# 같은 이름으로 각 객체의 값을 관리할 수 있음.
요약
객체는 성질과 할 수 있는 행동을 담은 자료
클래스는 객체를 만들 수 있는 틀
인스턴스는 클래스로 만든 객체
객체지향 프로그램의 장점
'IT > Python' 카테고리의 다른 글
파이썬 객체지향 프로그래밍-02. 클래스 입문 (0) | 2021.06.20 |
---|---|
파이썬 객체지향 프로그래밍-01. 함수 (0) | 2021.06.20 |
도레미 파이썬: 모듈과 패키지 (0) | 2021.06.16 |
엘리스 AI 트랙 도레미 파이썬 06. 함수와 메서드 (0) | 2021.05.06 |
엘리스 AI 트랙 도레미 파이썬 05. 기초 자료형 II (0) | 2021.05.06 |
댓글