OOP
OBJECT ORIENTED PROGRAMMING
OBJECT ORIENTED PROGRAMMING
OBJECT ORIENTED PROGRAMMING
a programming
paradigm
OBJECT ORIENTED PROGRAMMING
a programming
paradigm
based on the concept of
"object"
OBJECT ORIENTED PROGRAMMING
a programming
paradigm
based on the concept of
"object"
which can contain
data and code
OOP
WHAT IS OOP?
Imperative and Procedural Programming
Imperative and Procedural Programming
Imperative and Procedural Programming
main
Imperative and Procedural Programming
main
fun startTimer()
fun play()
Imperative and Procedural Programming
main
fun startTimer()
fun play()
fun init()
fun read()
fun start()
fun load()
fun read()
Imperative and Procedural Programming
main
fun startTimer()
fun play()
fun init()
fun read()
fun start()
fun load()
fun read()
data
data
data
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
class
- template
- declare once
- no data
Object Oriented Programming
class
- template
- declare once
- no data
object
- instace of a class
- created many times using new keyword
- data in
Object Oriented Programming
class
object
Object Oriented Programming
class
object
OOP
4 CORE PRINCIPLES
4 CORE PRINCIPLES
4 CORE PRINCIPLES
Encapsulation
Abstraction
Inheritance
Polymorphism
4 CORE PRINCIPLES
Encapsulation
Abstraction
Inheritance
Polymorphism
4 CORE PRINCIPLES
Encapsulation
Abstraction
Inheritance
Polymorphism
내부가 어떻게 구현되어 있는지 어떤 값이 있는지는 사용자가 알 필요가 없다!
인터페이스를 통해 객체가 지닌 상태를
변경할 수 있도록 메소드를 제공
또한 객체의 상태를 볼 수 있도록 인터페이스 제공
4 CORE PRINCIPLES
Abstraction
Encapsulation
Inheritance
Polymorphism
4 CORE PRINCIPLES
Abstraction
Encapsulation
Inheritance
Polymorphism
내부에서 구현된 복잡한 요소를 외부에서 쉽게 사용할 수 있도록 해주는 개념
커피머신을 사용할 때, 사용자는 이게 어떻게 만들어졌는지 알 필요 없이 그냥 버튼 누르면 됨
함수를 활용해 객체를 사용할 수 있도록 해주는 개념
4 CORE PRINCIPLES
Inheritance
Encapsulation
Abstraction
Polymorphism
4 CORE PRINCIPLES
Inheritance
Encapsulation
Abstraction
Polymorphism
클래스를 확장시킬 수 있는 방법
한번 잘 정의된 템플릿을 활용해, 기존 기능은 유지하며 새로운 기능들을 추가시켜
나갈 수 있음
이때 만들어진 관계를 parent - child
또는 super - sub이라고 표현
4 CORE PRINCIPLES
Polymorphism
Encapsulation
Abstraction
Inheritance
4 CORE PRINCIPLES
Polymorphism
Encapsulation
Abstraction
Inheritance
하나의 클래스가 여러가지 형태로
사용될 수 있는 개념
동물이라는 Class는 사람으로도 활용될 수 있고, 강아지, 고양이로도 동작할 수 있다.
모든 동물들은 소리를 낼 수 있지만,
사람이 내는소리와 고양이, 강아지가 내는 소리는 모두 다름!
이처럼 같은 인터페이스임에도 overriding을 통해
실제 구현되어 평가되는 요소를 변경할 수 있게 해준다
OOP with TypeScript
By hoonnotes
OOP with TypeScript
- 123