객체 지향 프로그래밍

초짜의 개발 공부·2021년 8월 4일
0

node

목록 보기
1/3
post-thumbnail
객체 지향 프로그래밍은 하나의 모델을 만들고 그 모델을 바탕으로 한 객체를 만드는 프로그래밍 패턴이다.

class - 모델

instances - 모델을 바탕으로 한 객체

여기서 인스턴스가 생성하는 코드로 객체지향 프로그래밍에서는 생성자(constructor) 함수라고 한다. (생성자 함수는 return 하지 않는다.)


class Shoes {

 constructor(brand, name, color) {
  //인스턴스가 만들어질 때 실행하는 코드
}

}

let nike = new Shoes('nike','nikeair', 'white')
let adidas = new Shoes('adidas', 'yeezy', 'black')

위의 코드를 보면 nike, adidas의 인스턴스는 Shoes라는 클래스의 속성과 메소드를 갖게 된다.

아래에 new 키워드는 인스턴스를 만들 때 사용하고 생성자 함수를 실행해준다.


class Shoes {
	constructor(brand, name, color){
    	this.brand = brand
        this.name = name
        this.color = color
    }
}

생성자 함수에서 등장하는 this라는 키워드는 인스턴스 객체를 의미한다. 들어오는 파라미터 값은 인스턴스 생성시 지정하는 값으로 생성된 인스턴스에 해당 브랜드, 이름, 색상 등을 부여하겠다는 의미이다.
this에 값을 할당해주는 것이다.


class Shoes {
	constructor(brand, name, color){
    	this.brand = brand
        this.name = name
        this.color = color
    }
    
    comfort() {
    }
    
    run() {
    }
}

comfort(),run()는 메소드이다. 객체에 딸린 함수라고 할 수 있다.

brand, name, color는 속성이다.

속성과 메소드를 기반으로 이제 인스턴스에서 사용해 보자.

let nike = new Shoes('nike','nikeair', 'white')
nike.color // 'white'
nike.run() // run() 메소드라 nike에서 실행


let adidas = new Shoes('adidas', 'yeezy', 'black')
adidas.name // 'yeezy'
adidas.comfort() // comfort()메소드 adidas에서 실행

기타 용어에 대한 설명은 아래 사진을 참고!


function Shoes { //class
	constructor(brand, name, color){
    	this.brand = brand  // this객체 
        this.name = name
        this.color = color
} // 생성자(constructor) 함수

   // prototype객체 = 여기에 속성이나 메소드를 정의
  
    Shoes.prototype.run = function() {
    	console.log(this.name + '가 달리기를 시작합니다')
}

//nike는 인스턴스 

let nike = new Shoes('nike','nikeair', 'white')
nike.color // 'white'
nike.run() // run() 메소드라 nike에서 실행


이러한 생성자 함수는 배열의 인스턴스를 생성하는 것과 동일한다.

let arr = new Array('hello','world')
arr.length // 2
arr.push('!')

0개의 댓글