[TIL] 클래스와 인스턴스

송인선·2022년 7월 22일
0

TIL

목록 보기
5/16
post-thumbnail

Today I Learn...

객체 지향 프로그래밍

객체 지향 프로그래밍 : 하나의 모델이 되는 청사진을 만들고, 그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴
❗️ 기존에 배우던 객체(object)와는 다른 개념이니 헷갈리지 말것!

  • 청사진 --> class
  • 프로그래밍 패턴 --> instance

[참고]
붕어빵틀(class)와 각각의 붕어빵(instance)으로 설명하신 분이 있는데 비유가 찰떡같아서 이해가 잘된다ㅎㅎ 소개해주신 동기님 고마워요!🤗

What is instance(인스턴스란?)

클래스와 인스턴스


📌 인스턴스를 만드는 방법!

  1. new 키워드 --> 클래스의 새로운 인스턴스를 만든다
    • 각각의 인스턴스 avante, mini는 Car라는 클래스의 고유한 속성과 메소드를 가진다!
let avante = new Car('Huyndai', 'avante', 'black')
let mini = new Car('bmw', 'mini', 'white')
  1. 생성자 함수 --> 인스턴스가 만들어질 때 실행되는 코드
    • 생성자 함수는 return 값을 만들지 않는다~

new 키워드 사용 -> 생성자 함수 실행 -> 변수에 클래스의 속성을 가진 인스턴스가 할당

📌 클래스를 만드는 문법!

class 키워드를 이용하여 클래스를 만드는 새로운 문법이 ES6에 도입🤟
최근에는 ES6문법을 자주 사용
❗️this는 인스턴스 객체를 의미

ES5

function Car (brand, name, color) {/*생략*/}

Car.prototype.refuel = function() {
}

ES6
--> class 키워드 도입으로 더 간단하게 작성 가능
--> ES5에서 사용하던 prototype을 사용하지 x

class Car {
  constructor(brand, name, color) {/*생략*/}
  refuel () {
  }
}  

💡 만약 학생이라는 클래스를 만든다면?
(너무 옛날이라 떠오르지가 않는다 ㅋㅋㅋㅋㅋㅋㅋ)

속성메소드
schoolstudy()
gradesports()
gendergame()

📌 ES6문법으로 클래스와 인스턴스 실습

class Car {
  constructor(brand, name, color) {
    this.brand = brand;
    this.name = name;
    this.color = color;
  }
  drive() {
    console.log(this.name +'가 운전을 시작합니다.')
  }
}

let avante = new Car('Hyundai', 'avante', 'red')
avante.color; //red
avante.drive(); // 'avante가 운전을 시작합니다.'

class Counter {
  constructor () {
    this.value = 0;
  }
  increase() {
    this.value++
  }
  decrease() {
    this.value--
  }
  getvalue(){
    return this.value;
  }
}

let Counter1 = new Counter()
Counter1.increase()
Counter1.increase()
Counter1.decrease()
Counter1.getvalue() // 1
profile
캣닙같은 마성의 개발자

0개의 댓글