TIL. <22.04.25>

강형원·2022년 4월 25일
0

TypeScript

목록 보기
3/11
post-thumbnail

절차지향적 프로그래밍 - 전체적인 어플리케이션이 어떻게 동작하는지 잘 알아야 함 그리고 한눈에 이해하기도 어렵고 하나를 건드리면 다른 곳에서 사이드이펙트가 발생할 가능성이 크다.

객체지향 프로그래밍 - 서로 관련 있는 데이터와 함수를 여러가지 오브젝트로 정의해서 프로그래밍함. 한곳에서 문제가 있으면 관련있는 오브젝트만 수정. 여러번 반복하면 재사용할 수도 있음. 새로운 오브젝트를 추가 할 수도 있음.

클래스 - 오브젝트안에 데이터(fields)와 함수(methods)가 있음을 정의.
- template 같은 것.
오브젝트 - 클래스에 데이터를 넣어서 만든것. 오브젝트는 클래스의 인스턴스.

ex) 붕어빵 클래스를 이용하여 팥 붕어빵 인스턴스를 생성했다!

그렇다면 클래스와 오브젝트만 만든다고 해결된느 것일까? 답은 No!

OOP

  1. Encapsulation
    고양이의 상태를 바꿀수는 없지만 외부에서 놀아주고 밥을 줘서 바꿀수 있다.
  2. Abstraction
    커피머신 내부에서 어떻게 이뤄지는지 알수 없지만 함수는 쓸 수 있는것
  3. Inheritance
    가정용 커피브루어와 매장용 에스프레소머신은 공통된 커피머신이다.

    4.Polymorphism
    다형성. throw Error가 작동하면 밑에 라인은 실행하지 않습니다.
    class에서 한 번 정의 되어지고 이 클래스를 이용한 오브젝트 사이에서 다 공유가 될 수 있는 것들을 멤버변수로 만들면, 오브젝트를 만들 때마다 중복적으로 데이터가 생성되기 때문에 메모리가 낭비된다. 그리하여 static 키워드를 붙여준다.
profile
사람. 편하게.

0개의 댓글