티스토리 뷰
CS/etc.
Dev.sohee
2021. 3. 3. 02:20
OOP 란?
- Object Oriented Programming의 약자 -> 객체 지향 프로그래밍
- 여러 개의 객체 단위로 나누어 작업하는 방식
객체
- 실생활에서 인식할 수 있는 사물
- 자바스크립트의 기본 타입
- method(행위)와 property(속성)를 가진다.
- property는 key와 value로 구성
- property의value가 함수일 경우 일반 함수와 구분하기 위해 메소드라고 부른다.
- ( 속성 = 필드 = property / 함수 = method )
클래스와 인스턴스
1. class
- 특정 객체를 생성하기 위해 일반화된 형태로 정의하는 일종의 틀
2. 인스턴스
- 클래스에 따라 구현된 실체
- 실체화된 인스턴스는 메모리에 할당된다.
3. 인스턴스화
- 클래스를 바탕으로 객체를 실체화하면 인스턴스가 되며, 이 과정을 인스턴스화라고 한다.
OOP의 특징
1. Class
- JavaScript에서도 class 사용이 가능하게 됨
- class없이도 프로그래밍이 가능하며 생성자 함수와 propotype 속성을 통해 클래스를 구성할 수 있다.
2. 캡슐화
- 객체의 속성과 행위를 하나로 묶고, 실제 구현 내용 일부를 외부에 감춰 은닉한다. (= private / protected / public)
- JavaScript에서는 지원하지 않는다.
3. 상속
- 어떤 클래스의 모든 내용을 그대로 가져오는 것
- 자식 클래스는 부모의 모든 것을 물려 받는다.
- 코드의 중복을 없앨 수 있다.
4. 다형성 (Polymorphism)
- 상위 클래스를 다양하게 표현할 수 있는 특성
- 같은 타입의 여러 가지 객체를 대입하여 다양한 결과를 얻을 수 있다.
- 다형성을 활용하는 방법으로는 overriding, 추상화, 인터페이스가 있다.
- JavaScript에는 overloading을 공식지원하지 않는다.
5. 추상화 (Abstraction)
« 2024/11 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
|
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 |
29 |
30 |