객체지향프로그래밍 / 클래스와 인스턴스

jina Seo·2022년 11월 18일
0

객체지향프로그래밍 / 클래스와 인스턴스
객체 지향 프로그래밍 : 하나의 모델이 되는 청사진(설계도/클래스)을 만들고,
그 청사진을 바탕으로 한 객체(특정한 모델/인스턴스(객체))를 만드는 프로그래밍 패턴

객체는 => 그냥 일반적인 함수를 정의하듯 만드는데, 함수를 이용하는 방법이 다름
(new키워드를 써서 만들어서 실행하고, 새로운 인스턴스 만드는 방법임)
일반적인 다른 함수와 구분하기 위해 클래스는 보통 대문자로 시작하며 일반명사로
<-> 일반적인 함수는 적절한 동사를 포함하고 소문자로 시작합니다.
클래스 만들기
[ES5]
function Car (color) { //-> 대문자, 일반 명사
//인스턴스가 만들어질때 실행되는 코드
this.color = color;//this는 인스턴스 객체를 의미함

Car.prototype.refuel = function(){ //prototype이라는 키워드를 사용해야 메서드를 정의할 수 있음
//연료공급구현하는 코드
}
}

[ES6]
class Car {
constructor(color){
//인스턴스가 만들어질때 실행되는 코드
this.color = color;
}
refuel(){

}
}

//parameter로 넘어온 브랜드, 이름, 색상 등은 인스턴스 생성 시 지정하는 값이며,
위와 같이 this에 할당한다는 것은 만들어진 인스턴스에 해당 브랜드, 이름, 색상을 부여하겠다는 의미

인스턴스 만들기

let avante = new Car('blue')
avante.color // 'blue'
avante.refuel() //아반떼에 연료를 공급합니다
//인스턴스를 만들 때에는 new 키워드를 사용합니다. 즉시 생성자 함수가 실행되며, 변수에 클래스의 설계를 가진 새로운 객체, 즉 인스턴스가 할당됩니다.
각각의 인스턴스는 클래스의 고유한 속성과 메서드를 갖게 됩니다.

프로토타입 : 모델의 청사진을 만들때 쓰는 원형 객체
constructor : 인스턴스가 초기화될때 실행하는 생성자함수
this : 함수가 실행될때 해당 스코프마다 생성되는 고유한 실행 컨텍스트로, new키워드로 인스턴스를 생성하면 해당 인스턴스가 바로 this 값이됨

profile
운동하는 개발자가 꿈입니다?

0개의 댓글