OOP(Object Oriented Programming)-객체지향프로그래밍

byungju0624·2020년 10월 28일
0
post-thumbnail

OOP란?

-> 서로 연관된 함수들을 객체로 묶어서 그 객체에 이름을 지정하고 다른 함수들과 구분되게 하는 것(분리하는 것)이다=> 객체 지향의 핵심이라고 한다.
-> OOP는 어떤 프로그래밍의 방식, 방법론인데 한마디로 정의 하기에는 다소 어려움이 있다.

class란?

-> fields와 methods가 종합적으로 묶여있는 것이라고 할 수 있다. 한마디로 정의하자면 틀이나 설계도가 예가 될 수 있다. class에는 템플릿만 정의 돼 있고 데이터는 들어있지 않다. class는 한번만 선언하면 상속을 이용해 사용할 수 있다.

인스턴스란?

-> 인스턴스(instance) 라는 용어는 객체(object)와 유사하다. 다만, 의미상으로 객체는 좀 더 일반적인 의미인 반면 인스턴스 라고 표현하면 현재 생성된 바로 그 객체 라는 인스턴트(instant)한 뉘앙스를 더 짙게 표현할 수 있다. 쉽게 생각하면 클래스라는 틀에 데이터를 넣어서 만든 객체??라고 설명할 수 있을 것 같다.

상속이란?

클래스의 fields(data)와 methods를 받아오는 것이다. 쉽게 말하면 클래스라는 틀의 속성들을 가져오는 것이라고 할 수 있을 것 같다.

붕어빵을 예로 한번 들어보자!
여기서 붕어빵의 틀이 되는 것을 우리는 class라고 하고 밀가루와 팥을 넣어서 붕어빵이 만들어지면 그 붕어빵은 Object가 된다. 이것을 ES5와 ES6를 비교해보자!!

ES5
접근할 수 있는 Class를 만들어준다.------------

function 붕어빵틀(inside) {
	this.inside = inside;
}

메소드를 만들어준다--------------------------

붕어빵틀.prototype.붕어빵 = function () {
	console.log(`${inside}맛 붕어빵`);
}

새로운 인스턴스를 만들어준다-------------------

let 완성 = new 붕어빵틀('피자');
console.log(완성.붕어빵());//피자맛 붕어빵

ES5의 코드를 ES6로 조금 더 쉽게 접근이 가능하다.

ES6
붕어빵의 틀을 만든다--------------------------

class 붕어빵틀 {
  constructor (inside) {
  	this.inside = inside;
    }
    
메소드를 만들어준다--------------------------

	붕어빵() {
    	console.log(`${this.inside}맛 붕어빵`)
        }
}
//새로운 인스턴스를 만들어준다-------------------

let 완성 = new 붕어빵틀("피자");
console.log(완성.붕어빵()); //피자맛 붕어빵

0개의 댓글