본문 바로가기

Frontend/자바스크립트 Java Script

[자바스크립트] Class -객체지향언어

class <- fields(속성), methods(행동)

연관있는 데이터들을 묶어논 필드와 메소드들이 종합적으로 묶여있는 것.

간혹, 메소드 없이 필드만(데이터만) 들어있기도 하며 이 것을 데이터클래스라고 부른다.

 

class person {

    name;

    age;          // 속성(field)

    speak();   // 행동(method)

}

 

 

Class (ES6에 도입됨. syntatical sugar over prototype-based inheritance)

- template

- declare once

- no data in

클래스는 붕어빵을 만들 수 있는 틀. 청사진. 템플릿.

데이터가 들어있지 않다.

이런이런 데이터가 들어올 수 있어 라고 정의내려 놓고 한 번만 선언한다.

클래스를 이용해서 실제로 데이터를 넣어서 만드는 것이 Object. 

 

Object

- instance of a class

- created many times

- data in

 클래스를 이용해서 실제로 데이터를 넣어서 만드는 것이 오브젝트.

팥붕어빵, 크림붕어빵, 피자붕어빵 .. 다양하게 만들 수 있다.

 

 

 

1. Class declarations

class Person {

    // constructor

    constructor(name, age) {

       // field

        this.name = name;

        this.age = age;

    }

    // methods

    speak() {

       console.log(`${this.name}: 'hello!');

    }

}

 

const ellie = new Person('ellie', 20);

console.log(ellie.name);        -> ellie

console.log(ellie.age);           -> 20

ellie.speak();                         -> ellie: hello!

 

 

2. Getter and Setter

C언어는 procedure Language(절차지향언어) 함수를 호출해서 실행하는 프로그램.

JAVA는 Object Oriented Language(객체지향언어) 오브젝트가 서로 interaction(상호작용)하면서 돌아가는 어플리케이션.

encapsulation(캡슐화)

커피자판기 : class

property : cup of coffee 

동전넣고 putCoins , 커피만들고 makeCoffee : methods 2개

 

number of coffee는 integer이므로 마이너스 값을 가질 수 없으므로 

Getter & Setter를 사용해서 사용자가 멍청하게 -1으로 설정하는 것을 막는다.

사용자가 -값을 설정해도 Setter에서 막는다.