앞서 공부한 반복문, 함수, 모듈이 도입된 이유는 효율적인 코드를 위해서이다.
print("hi") = for i in range(5):
print("hi") print("hi")
print("hi")
print("hi")
print("hi")
성질과 할 수 있는 행동이 담긴 자료
객체를 만들 수 있는 틀
-클래스 생성
class 클래스이름:
class Human:
객체가 가지고 있는 성질 = 객체가 가지고 있는 변수
class Human:
name : 'jin'
age : 24
객체가 할 수 있는 행동 = 객체가 할 수 있는 함수
class Human:
def study(self):
print(“hard!”)
self: 메서드라면 가져야 하는 첫번째 매개변수
객체를 만들 수 있는 틀(클래스)로 찍어낸 객체
-인스턴스 만들기
인스턴스 이름 = 클래스 이름()
Lee = Human()
-인스턴스의 변수
인스턴스.변수
Lee = Human()
Lee.name #jin
Lee.age #24
-인스턴스의 메서드
인스턴스.메서드()
Lee = Human()
Lee.study() #hard!
- 추상화 (Abstraction)
- 상속 (Inheritance)
- 다형성 (polymorphism)
- 캡슐화 (Encapsulation)
객체들의 공통적인 특징(기능, 속성)을 도출하는 것
객체지향적 관점에서는 클래스를 정의하는 것을 추상화라고 할 수 있다.
하나의 클래스가 가진 특징(함수, 데이터)을 다른 클래스가 그대로 물려받는 것
이미 작성된 클래스를 받아서 새로운 클래스를 생성하는 것
약간 다른 방법으로 동작하는 함수를 동일한 이름으로 호출하는 것
동일한 명령의 해석을 연결된 객체에 의존하는 것
객체가 독립적으로 역할을 할 수 있도록 데이터와 기능을 하나로 묶어 관리하는 것
코드가 묶여있어서 오류가 없어 편리하다.