S2-[Unit 2] OOP-클래스와 인스턴스

98__dj·2023년 3월 15일

SEB_FE_후기

목록 보기
9/22

객체 지향 프로그래밍(OOP)


객체 지향 프로그래밍은 데이터와 기능을 한 번에 묶어서 처리할 수 있다.
객체 내에는 메서드속성이 존재한다.



클래스


객체를 생성하기 위한 청사진이다.
위 사진 처럼 자동차를 만들 때 틀이 있고 그 안에 다양한 속성들이 있다.
이러한 속성들이 인스턴스 객체, 줄여서 인스턴스라고 한다.

인스턴스는 생성자를 통해 부여할 수 있다.


클래스를 정의하는 방식은 두가지가 있다.

<ES5>
  
  function Car(brand, name, color) {
  	// 인스턴스가 만들어질 때 실행되는 코드
  }


<ES6>
  
  class Car {
    constructor (brand, name, color) {
  		// 인스턴스가 만들어질 때 실행되는 코드
  	}
  }
  • constructor(생성자)함수는 인스턴트가 만들어질 때 실행된다. --> return값 X

인스턴스를 만들 때

 	let avante = new Car('hyundai', 'avante', 'black');
    let mini = new Car('bmw', 'mini', 'white');
    let beetles = new Car('volkswagen', 'beetles', 'red');

new 키워드를 통해 클래스의 인스턴스를 만든다. 각각의 인스턴스는 클래스의 고유한 속성메서드를 갖는다.


클래스 : 속성의 정의

<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;
  	}
  }

this : 인스턴스 객체를 의미. 즉 this.brand 는 parameter로 넘어온 brand이다.

클래스 : 메소드의 정의

<ES5>
  
  function Car(brand, name, color) { /* 속성 정의 */
  	Car.prototype.refuel = function() {
      // 연료 공급을 구현하는 코드
    }
  
  Car.prototype.drive = function() { /* 속성 정의 */
      // 운전을 구현하는 코드
    }
  }


<ES6>
  
  class Car {
    constructor (brand, name, color) {
      
      refuel() {
      }
      
      drive() {
      }
  	}
  }

인스턴스에서의 사용

	let avante = new Car('hyundai', 'avante', 'black');
	avante.color; // 'black'
	avante.drive(); // 아반떼가 운전을 시작


    let mini = new Car('bmw', 'mini', 'white');
	mini.brand; // 'bmw'
	mini.refuel(); // 미니에 연료를 공급

0개의 댓글