[TIL][OOP(object-oriented programming)] 객체지향 프로그래밍

김태수·2020년 10월 28일
0
post-thumbnail

객체지향 프로그래밍

OOP(Object-Oriented Programming), 이하 객체지향 프로그래밍은 특정 라이브러리나 특정 언어를 사용하는 프로그래밍이 아닌, 하나의 프로그래밍 방식이라 말할 수 있다.
객체지향 프로그래밍의 가장 중요한 키워드는 재사용성객체(Object) 라고 할수있다.

재사용성

객체지향 프로그래밍은 간단한 예로 같은 속성등을 가진 물건을 만들어내기 위해 거푸집을 이용하는 것이라 볼 수 있다. 여기서 거푸집은 생성자 함수(ES5), class(ES6) 등을 사용하게 되며, 이를 통해 같은 속성과, 메소드 등을 가진 물건, 즉 인스턴스를 필요한 만큼 손쉽게 만들어 낼 수 있다.
이러한 객체지향 프로그래밍은 현실세계를 기반으로한 프로그래밍을 진행할 때 유용하다.

아래에 간단하게 헬스장 회원을 관리할 수 있는 코드를 만들어 보았다.

ES5

function Members(name, sex, age, height, weight, membership) {
  	this.name = name;
        this.sex = sex;
        this.age = age;
        this.height = height;
        this.weight = weight;
        this.membership = membership;
}
.
.
// method 정의___________________________________
Members.prototype.addMonth = function() {
	this.membership += 30;
    	console.log(`${this.membership} days left`);
}
Members.prototype.sayHello = function() {
    	console.log(`${this.name}님 안녕하세요! 회원권은 ${this.membership}일 남았습니다!`);
}
.
.
// 새 instance 생성______________________________
let 김태수 = new Members('김태수', 'male', 25, 183, 68, 90);
.
.
.
.
.
김태수.sayHello() ===> '김태수님 안녕하세요! 회원권은 90일 남았습니다!'

ES6

class Members() {
	constructer(name, sex, age, height, weight, membership) {
      		this.name = name;
        	this.sex = sex;
        	this.age = age;
        	this.height = height;
        	this.weight = weight;
        	this.membership = membership;
        }
	.
	.
	// method 정의___________________________
	addMonth() {
		this.membership += 30;
    		console.log(`${this.membership} days left`);
	}
	sayHello() {
    		console.log(`${this.name}님 안녕하세요! 회원권은 ${this.membership}일 남았습니다!`);
	}
}
.
.
// 새 instance 생성______________________________
let 김태수 = new Members('김태수', 'male', 25, 183, 68, 90);
.
.
.
.
.
김태수.sayHello() ===> '김태수님 안녕하세요! 회원권은 90일 남았습니다!'
profile
개발학습 일기

0개의 댓글