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 (고급 프로그래밍 언어)
사람들이 이해하기 쉽게 고안된 프로그래밍 언어. 즉, 우리가 공부하고 있는 프로그래밍 언어도 모두 고급 프로그래밍 언어이다.
자바스크립트에서의 객체지향형 프로그래밍은?
-
ENCAPSULATION.
-
INHERITANCE.
-
PROTOTYPE.
Terminology
- Class : 객체의 특성을 정의
- Object : Class의 인스턴스
- Property : 객체의 특성(예: 색깔)
- Method : 객체의 능력(예: 걷기)
- Constructor : 인스턴스화 되는 시점에서 호출되는 메서드
- Inheritance : 클래스는 다른 클래스로부터 특성들을 상속받을 수 있다.
- Encapsulation : 클래스는 해당 객체의 특성들만을 정의할 수 있고, 메서드는 그 메서드가
어떻게 실행되는지만 정의할 수 있다. (외부 접근 불가)
- Abstraction : 복잡한 상속, 메서드, 객체의 속성의 결합은 반드시 현실 세계를
시뮬레이션할 수 있어야 한다.
- Polymorphism : 다른 클래스들이 같은 메서드나 속성으로 정의될 수 있다.
EXAMPLE
난 글로만 설명하는걸 질색하기때문에, 예제를 통해 이해하는편이다.
- 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('반포한강공원'); // "정환 이 빠르게 반포한강공원으로 뛰어가고있습니다."
이렇게 출력이 될것이다.
- 상속
앞선 부모클래스의 property를 자식클래스에 상속해보자.
let RunnerOnFire = function(name) { //새로운 자식객체 Runner.call(this, name); this.name = name; }; RunnerOnFire.prototype = Object.create(Runner.prototype); 상속해오기 RunnerOnFire.prototype.constructor = RunnerOnFire; //생성자가 부모객체를 가르키니깐 현재 자식객체로 가르키게 수정
REFERENCE LIST.
- < https://developer.mozilla.org/ko/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript >
- < https://www.youtube.com/watch?v=pTB0EiLXUC8 >
Author And Source
이 문제에 관하여(OPP (object-oriented programming)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hareguu/OPP-object-oriented-programming저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)