개발 및 기술 블로그

객체 지향 프로그래밍(Object Oriented Promgramming) 본문

Computer Science

객체 지향 프로그래밍(Object Oriented Promgramming)

Selfish Technology 2020. 9. 9. 10:55

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

 

단어부터 뭔가 난해하다. 객체지향?? 확 와닿지 않는다. 난 붕어빵틀을 만드는 프로그래밍이라 생각한다.

붕어빵을 여러개 만들때 붕어빵 틀에 밀가루 같은것을 쭉 부어서 만드는걸 본적 있을것이다.

난 이 붕어빵을 객체라 하면 붕어빵 틀을 만들기 위해 하는 행위들을 객체 지향프로그래밍이라 이해했다.

쉽게이해하면 이런느낌?

fuction 붕어빵(){
	this.내용물 = 단팥;
}
	

 

JavaScript에서 객체를(Object)를 생성하는 여러가지 방법들

 

객체 리터럴 방식

var 객체명 = {
	속성명1: 값1,
   	속성명2: 값2,
    ...
};

//예시

var Car = {
	name = "Tesla",
	BatteryQuantity = 0,
    
    charge : fucktion(){
    		this.BatteryQuantity += 1;
      	}
}

Object 생성자 함수 방식

let car = new Car();

car.name = "Tesla";
car.charge(); // car.BatteryQuantity ++

 

사용자 정의 생성자 함수 방식

 

//생성자 함수
function NewCar(name, gas){
	this.name = name;
	this.gas = gas;
}

//객체 생성
let car1 = new NewCar('tesla', 'electronic');
let car2 = new NewCar('Avante', 'gasoline');

 

JavaScript에서 Prototype이란??

 

JavaScript는 프로토타입 기반의 언어라고도 한다. 프로토타입 기반 언어는 객체원형을 참조한다고 이해했다.

객체 원형인 프로토타입을 이용해서 새로운 객체를 찍어내고 이렇게 찍어낸 객체 역시 또 다른 객체의 원형이 될 수 있다.

 

조금 이해하기 쉬운 그림을 찾아보았다.

 

속성이 하나도 없는 Person이라는 함수가 정의되면 Person.Prototype 속성은 Person 원형객체를 참조한다

 

정리하면 프로토타입이란

'자신이 다른객체의 원형이 되는 객체'이다. 모든 객체는 프로토타입 객체에 접근 할 수 있고 안에 들어있는 메서드 그리고 멤버들을 사용 할 수 있다.

 

'Computer Science' 카테고리의 다른 글

[자료구조] 선택트리, 숲, 이진 트리 개수  (0) 2021.10.29
[자료구조] Heap 힢  (0) 2021.10.25
Prototype Chain 그리고 Class  (0) 2020.09.09
재귀함수  (0) 2020.08.31
바빌로니아 법 알고리즘  (0) 2020.08.07