본문 바로가기

프로그래머스/프로그래머스 Study

[10-5] 타입스크립트 기초5

 

2024.05.03 이번 주간도 과제 요약제출 'ㅅ'
- 클래스의 기본
- 생성자
- 상속성
- 오버로딩
- 오버라이딩
- 인터페이스
- 람다

 

 

 

클래스의 기본

- 눈에 보이는 속성 = 상태 = 필드
- 행위 = 행동 = 메소드

클래스
: 추상적인 데이터 타입(클래스의 본질)

클래스 선언은 이렇게
: class 클래스 이름

접근 지정자
: public/ protected/ private

객체에서도 변수라고 하게되면 얘가 객체의 변수인지 기본타입의 변수인지 알 수 없어서
클래스 타입으로 선언한 변수를 객체라고 부르는 것


new Dog​

 

라는 코드는 실제 dog라는 객체의 데이터 사이즈만큼 자동계산해서 메모리 할당

 

 


생성자

모든 변수는 선언시 초기화를 해야 함
객체도 본질적으로는 변수라 당연히 초기화 필요

 

 


상속성

현실 세계의 상속 개념(부모 - 자식)
이미 완성된 클래스를 다른 클래스에 상속할 수 있음

 

 

 

다형성

함수의 이름이 같더라도 전달인자의 타입이나 개수에 따라 구분
오버로딩, 오버라이딩

 

 

오버로딩

겉모습은 똑같지만 내용이 다른 경우
이름이 같아도 전달인자 타입이나 개수 다를 경우

e.g. 스타크래프트 저그 - 오버로드 유닛
오버로드 유닛이 수송기인데 다 똑같이 생겼지만
그 안에 여러 애들을 태울 수 있음
오버로드1 - 저글링 네마리
오버로드2 - 히드라 리스크 네마리
오버로드3 - 럴커 네마리
= 겉모습으로는 구분 불가(그치만 타고있는 타입이 달라서 서로 다른 유닛으로 인식)

 

 

 

오버라이딩

기존의 것을 덮어버리는 개념
상속의 개념이 기반

 

 


인터페이스

본질은 타입(사용자 정의 타입)
메소드 목록만 선언하고 구현은 X

사용하는 이유
: 기존 기능 추가하거나 수정보다는, 동일한 개념의 기능 새롭게 구현
= 그래서 명세 목록만 작성함(실제 구현은 X)

 

 

 


람다

화살표 함수를 이해해보자
JS에서 주로 콜백함수(익명 메소드) 사용

익명 메소드와 화살표 함수
: 원조가 람다식

콜백함수가 익명 메소드를 사용하는 이유?
: 꼭 익명으로 정의하란 법은 없음
  기본적으로 함수는 함수이름을 통해 호출하게 되어있음
  (일반적으로 함수 만들고 호출하려면 이름알아야 호출가능)

But, 콜백 함수는 이벤트 발생시 미리 등록된 함수 호출하는 구조
(=다양한 곳에서 사용하는 함수가 X
   특정 이벤트에서만 사용하는 함수)
그래서 굳이 이름이 필요가 없음

람다식 표현 사용법
: (인수) => 표현식 또는 명령문