OPP (object-oriented programming)

INTRO.

객체지향형 프로그래밍, 자바스크립트를 공부하다보면 어디선가 자주 듣게 되는 표현이다. 객체 지향형이라.. 객체에 뭘 어떻게 한다는거지..!?
지금부터 알아보자!


객체지향형 프로그래밍이란?

1. MACHINE LANGUAGE (기계어)

기계어는 0 과 1 의 세계. 컴퓨터가 알아들을수있는 언어.
compiler 를 통해 인간의 언어로 번역

2. ASSEMBLY LANGUAGE (어셈블리어)

assembly language 가 무엇이냐 하면,
명령어가 10몇개 정도밖에 없는데, 자바스크립트에 보면 operator 예약된언어, function, return 각각의 언어. or and,

3. HIGH-LEVEL LANGUAGE (고급 프로그래밍 언어)

사람들이 이해하기 쉽게 고안된 프로그래밍 언어. 즉, 우리가 공부하고 있는 프로그래밍 언어도 모두 고급 프로그래밍 언어이다.


자바스크립트에서의 객체지향형 프로그래밍은?

  1. ENCAPSULATION.

  2. INHERITANCE.

  3. PROTOTYPE.

Terminology

- Class : 객체의 특성을 정의
- Object : Class의 인스턴스
- Property : 객체의 특성(: 색깔)
- Method : 객체의 능력(: 걷기)
- Constructor : 인스턴스화 되는 시점에서 호출되는 메서드
- Inheritance : 클래스는 다른 클래스로부터 특성들을 상속받을 수 있다.
- Encapsulation : 클래스는 해당 객체의 특성들만을 정의할 수 있고, 메서드는 그 메서드가 
		  어떻게 실행되는지만 정의할 수 있다. (외부 접근 불가)
- Abstraction : 복잡한 상속, 메서드, 객체의 속성의 결합은 반드시 현실 세계를 
		시뮬레이션할 수 있어야 한다.
- Polymorphism : 다른 클래스들이 같은 메서드나 속성으로 정의될 수 있다.

EXAMPLE

난 글로만 설명하는걸 질색하기때문에, 예제를 통해 이해하는편이다.

  1. Instance 생성

먼저 클래스 하나를 만들어보자 클래스 첫번째 글자는 대문자를 써주는게 국룰이다.

let Runner = function(name) {
  this.name = name;
};

메소드 하나 추가해주자.

Runner.prototype.whereToGo = function(destination) {
  return this.name + ' 이 빠르게 ' + destination + '으로 뛰어가고있습니다.';
};

이제 new 키워드를 통해서 인스턴스를 호출하고 메소드를 실행해보자.

let runner1 = new Runner('정환'); // runner1 은 ' {name : 정환} '
runner1.whereToGo('반포한강공원');  // "정환 이 빠르게 반포한강공원으로 뛰어가고있습니다."

이렇게 출력이 될것이다.

  1. 상속

앞선 부모클래스의 property를 자식클래스에 상속해보자.

let RunnerOnFire = function(name) {  //새로운 자식객체
  Runner.call(this, name);
  this.name = name;
};
RunnerOnFire.prototype = Object.create(Runner.prototype); 상속해오기
RunnerOnFire.prototype.constructor = RunnerOnFire; //생성자가 부모객체를 가르키니깐 현재 자식객체로 가르키게 수정 

REFERENCE LIST.

  1. < https://developer.mozilla.org/ko/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript >
  2. < https://www.youtube.com/watch?v=pTB0EiLXUC8 >

좋은 웹페이지 즐겨찾기