클래스와 인스턴스

김나율·2022년 9월 21일
0

section2

목록 보기
2/15
post-thumbnail

◎객체지향 프로그래밍

: 절차 지행 프로그래밍과는 다르게 데이터와 기능을 한 곳에 묶어서 처리
하나의 모델이 되는 청사진을 만들고, =>class
그 청사진을 바탕으로 한 객체를 만드는 =>instance
프로그래밍

  • ES6문법
    class키워드
    =>생성되는 함수는 생성자함수
    =>인스턴스가 만들어질때 실행되는 코드(return 값x)

  • 인스턴스
    :새로운 인스턴스 만들때 new키워드 사용
    =>생성자 함수가 실행되며, 변수에 클래스의 설계를 가진 새로운 객체, 즉 인스턴스가 할당
    =>대문자로 시작하며 일반명사로 만듬
    =>각각의 인스턴스는 클래스의 고유한 속성메서드를 가짐
    (속성은 특징, 메서드는 객체에 딸린 함수)

    ex)학생
    속성: 키, 이름 나이 등
    메서드: 밥먹기, 일어나기 등

  • 용어
    this: 인스턴스 객체
    prototype: 속성이나 메서드를 정의
    constructor: 인스턴스가 초기화될 때 실행하는 생성자 함수

  • ES5와 ES6 작성 문법 예시

    • ES5클래스
     Function Car(brand, name, color){  //클래스를 함수로 정의
       This.brand=brand;  // 속성
       This.name=name;
       This.color=color;
     }  
     Car.prototype.refuel=function(){  //메서드
     //연료 공급을 구현하는 코드
     }
     Car.prototype.drive=function(){
     //운전을 구현하는 코드
     }
    • ES6클래스
      Class Car{  //class키워드로 정의(생성자 함수)
        constructor(brand, name, color){
          This.brand=brand;  //속성
          This.name=name;
          This.color=color;
      }}
      refuel(){  //메서드
      console.log(this.name+ '가득 찼습니다');
      }
      drive(){
      Console.log(this.name + ‘가 운전을 시작합니다’);
      }
      *클래스의 인스턴스
      Let avante = new Car(Hyundai, ‘kasper’, ‘white’);  //클래스의 인스턴스 만듬
      //인스턴스에서의 사용
      avante.drive(); //kasper가 운전을 시작합니다
      avante.color; //white

  • 클로저모듈 패턴
    같은 코드를 그대로 복사/붙여넣기 하지 않고 재사용 가능
    -메서드 호출: 객체.메서드()과 같이 객체 내게 메서드를 호출하는 방법을 의미
    ex)

    function makeCounter() {
    let value = 1;
    return {
      multiple: function() {
        value*2;
      },
      decrease: function() {
        value--;
      },
      getValue: function() {
        return value;
      }
    }
    }
    
    let counter1 = makeCounter()
    counter1.decrease()
    counter1.getValue() // 0
    
    let counter2 = makeCounter()
    counter2.multiple()
    counter2.multiple()
    counter2.decrease()
    counter2.getValue() // 3
    

0개의 댓글