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에서 막는다.
'Frontend > 자바스크립트 Java Script' 카테고리의 다른 글
[JavaScript] { JSON } -서버 통신의 시작 (0) | 2020.11.05 |
---|---|
[자바스크립트] function (0) | 2020.11.04 |
[자바스크립트] Object (0) | 2020.11.03 |
[ES6] 전개 연산자 ...Array / [...배열이름] / ...Object (0) | 2020.10.26 |
Array의 push, concat 차이 (0) | 2020.10.26 |