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