티스토리 뷰

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)

  • 필요한 부분만 선택해서 클래스를 만드는 것

'CS > etc.' 카테고리의 다른 글

Git 명령어와 명령 동작 정리하기  (0) 2021.03.03
시간복잡도  (0) 2020.08.08
Git / Branch / Work flow / Git Flow란?  (0) 2020.08.08
공지사항
최근에 올라온 글
«   2024/07   »
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 31
글 보관함