Object Oriented Programming
절차적 언어
-
초기의 프로그래밍 언어는 일반적으로 절차적 언어라고 부름
(C, 포트란 등) -
절차적 언어는 순차적인 명령의 조합
객체 지향 언어
-
"클래스"라고 부르는 데이터 모델의 청사진을 사용해 코드 작성
-
현대의 언어들은 대부분 객체 지향의 특징을 갖고 있음
(대표적으로 Java, C++, C# 등) - JavaScript: 객체 지향으로 작성 가능
OOP
-
OOP는 프로그램 설계 철학입니다.
-
OOP의 모든 것은 "객체"로 그룹화됩니다.
-
OOP의 4가지 주요 개념을 통해 재사용성을 얻을 수 있습니다.
클래스와 인스턴스
-
클래스는 일종의 원형(original form)으로, 객체를 생성하기 위한 아이디어나 청사진입니다.
-
인스턴스는 클래스의 사례(instance object) 입니다.
-
클래스는 객체를 만들기 위한 생성자(constructor) 함수를 포함합니다.
클래스와 인스턴스
-
속성
-
메소드
OOP Basic Concepts
-
Encapsulation (캡슐화)
-
Inheritance (상속)
-
Abstraction (추상화)
-
Polymorphism (다형성)
캡슐화 Encapsulation
- 데이터와 기능을 하나의 단위로 묶는 것
- 은닉(hiding): 구현은 숨기고, 동작은 노출시킴
- 느슨한 결합(Loose Coupling)에 유리: 언제든 구현을 수정할 수 있음
추상화 Abstraction
추상화 Abstraction
상속 Inheritance
상속 Inheritance
Inheritance
properties
- name
- sex
- age
methods
- sleep()
- eat()
properties
- name
- sex
- age
- learning subject
methods
- sleep()
- eat()
- learn()
Human
Student
다형성 Polymorphism
다형성 Polymorphism
Polymorphism이 없다면
if (type === 'select') {
renderSelect()
}
else if (type === 'text') {
renderTextBox()
}
else if (type === 'checkbox') {
renderCheckBox()
}
//...
if/else if
OOP의 의미
사람이 세계를 보고 이해하는 방법을 흉내낸 방법론
References
마지막 슬라이드입니다
Copy of Copy of OOP (2021)
By Codestates
Copy of Copy of OOP (2021)
- 219