ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체 지향프로그래밍
    공부 1/기타 2020. 9. 18. 11:06

    객체 지향 프로그래밍 : 하나의 모델이 되는 청사진을 만들고, 그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴

     

    청사진 -> class // 청사진을 바탕으로한 객체 -> instance

     

     

    • class 정의 방법
    • (ES5)  클래스는 함수로 정의할 수 있다.
    function Car(brand, name, color){//인스턴스가 만들어질 때 실행되는 코드}
    //안에 아무것도 안넣어도 됨

     

    • (ES6) class라는 키워드를 이용하여 정의할 수도 있다.
    class Car(){
    	constructor(brans, name, color){
    		//인스턴스가 만들어질 때 실행되는 코드
    	}
    }
    //안에 아무것도 안넣어도 됨

     

    • 클래스는 대부분 맨 앞글자를 대문자로 만든다.

     

    • 인스턴스 만드는 방법
    • new 키워드를 통해 클래스의 인스턴스를 만들 수 있다.
    let avante = new Car('hyundai', 'avante', 'black');
    let mini = new Car('bmw', 'mini', 'white');
    let beetles = new Car('volkswagen', 'beetles', 'red');
    

     

    • 속성과 메소드

    - 클래스에 속성과 메소드를 정의하고 인스턴스에서 이용한다.

    - 속성 : 말 그대로 클래스가 갖고 있는 속성 (인스턴스마다 고유 속성이 다르다)

    - 메소드 : action (모든 인스턴스에 동일하게 적용된다)

    • (ES5) 속성의 정의
    function Car(brand, name, color){
    	this.brand = brand;
    	this.name = name;
    	this.color = color;
    }
    • (ES6) 속성의 정의
    class Car(){
    	constructor(brand, name, color){
        	this.brand = brand;
            this.name = name;
            this.color = color;
            }
    }
    • (ES5) 메소드의 정의
    function Car(brand, name, color){ /* 생략 */}
    
    Car.prototype.refuel = function(){
    	//연료 공급을 구현하는 코드
        }
    
    Car.prototype.drive = function(){
    	//운전을 구현하는 코드
        }
    • (ES6) 메소드의 정의
    class Car(){
    	constructor(brand, name, color){ /*생략*/ }
        
        refuel(){
        }
        drive(){
        }
     }
    • prototype, constructor, this
    protootype 모델의 청사진을 만들 때 쓰는 원형 객체
    constructor 인스턴스가 초기화 될 때 실행하는 생성자 함수
    this 함수가 실행될 때, 해당 scope마다 생성되는 고유한 실행 context
    new 키워드로 인스턴스를 생성했을 때에는, 해당 인스턴스가 바로 this 의 값이 됨

     

    댓글

Designed by Tistory.