일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 제주코딩베이스캠프
- 타입스크립트
- useState
- 프론트엔드
- 웹개발
- for문
- likelion
- 네트워크
- 멋쟁이사자처럼
- 배열
- 내일배움카드
- 개발자
- 비동기
- CSS
- react
- JavaScript
- 멋사
- Let
- array
- 메소드체이닝
- frontend
- 국비지원
- 반복문
- 화살표함수
- 코딩
- VAR
- 리액트
- SS
- 이벤트루프
- 자바스크립트
- Today
- Total
Ch.Covelope
객체지향 복습 OOP , 객체지향 개념정리 본문
OOP - 객체지향 개념 정리
캡슐화
데이터와 데이터를 활용하는 함수를 캡슐 혹은 컨테이너 안에 두는 것을 의미하는데 이 경우 캡슐은 class를 의미한다.
(함수와 데이터가 개념적으로 연관되어 있으면 캡슐화를 사용해서 코드를 개선할 수 있다.)
장점은 코드가 구조화되고 함수나 메서드가 인수를 취할 필요도 없다. (this키워드로 데이터에 직접 액세스 할 수 있기 때문)
캡슐화를 사용하여 표시할 클래스의 속성과 숨길 속성을 선택할 수 있다.
캡슐화는 어떻게 클래스 정보에 접근 혹은 수정하는지를 결정하는 권한을 제공한다.
캡슐화는 데이터 그리고 class 안에 있는 해당 데이터를 이용하는 함수를 잘 정리하는 방법론
상속
코드를 더 작은 단위로, class로 쪼개고 재사용할 수 있다.
클래스를 extends 하면 자식 클래스는 부모 클래스의 모든 속성과 메서드를 상속 혹은 수신하게 된다.
상속은 분할 및 정복을 가능하게 한다. 클래스들을 작게 쪼개고 분할한 후에 레고처럼 클래스들을 구성할 수 있다.
추상화
예를 들어 차량을 운전할 때 이를 위한 인터페이스를 사용한다. 여기서 인터페이스는 운전대, 페달, 각종 버튼들이 있다.
우리는 해당 인터페이스만 활용해서 차를 운전한다, 하지는 우리는 차량이 구현되는 세부적인 정보는 알지 못한다. (엔진이나 브레이크가 어떻게 작동하는지)
세부 정보는 모두 숨겨져 있다.
추상화된 내부 코드를 좀 더 빠르게 작동하게 수정한다고 해도 해당 코드를 사용하는 누구도 따로 뭔가를 바꿀 필요 없이 처음 사용했던 방법 그대로 사용할 수 있다.
(구현 세부 내용이 바뀌었더라도 인터페이스는 그대로 유지되었기 때문)
다형성
다형성은 여러 개의 + 형태(다형성)이라는 뜻이다.
부모 클래스에서의 메서드를 오버라이딩 할수 있는데 메서드가 어떻게 작동해야 하는지 규칙이 정해져 있다.
그래서 클래스의 핵심은 그대로 있고 구형 방식의 모양과 모습은 달라지게 되는 것이다.
예를 들어 두 개의 다른 클래스가 (B,C)가 하나의 부모 클래스에게 상속 받고 있다(A) . A는 하나의 sayHi()를 가지고 있지만
다형성을 이용해서 B,C 가 각기 다른 sayHi() 를 가지거나 출력할 수 있다.
개발자 교양필수? 객체지향 개념정리 10분컷. - YouTube
'JavaScript' 카테고리의 다른 글
자바스크립트(javascript) - 엔진,런타임,힙,스택,이벤트루프,프로세스 (0) | 2023.09.25 |
---|---|
자바스크립트 비동기(Asynchronous) 과정 .feat(AST) (0) | 2023.05.08 |
JavaScript 자바스크립트 ES6 문법 정리하기. (0) | 2022.05.02 |
ES5 prototype(프로토타입) 상속기능. (0) | 2022.02.16 |
Javascript <자바스크립트> this (0) | 2022.01.27 |