JavaScript에서 ES6에 도입됐다.
Class 생성 방법

class 클래스 이름
{
}
으로 class를 생성 할 수 있다.
Class의 내용물(인스턴스) 초기화 방법(constructor(생성자))

class 클래스 이름
{
constructor(name, age, gender)
{
// this 연산
this.name = name
this.age = age
this.gender = gender
}
}
로 class의 내용물을 생성 및 초기화 할 수 있다.
클래스 객체 생성 방법

타입 변수명 = new(new 연산자) 클래스 이름 (인스턴스 값들)
로 클래스 객체를 생성할 수 있다.
Class의 메서드 생성

class 클래스 이름
{
constructor(name, age, gender)
{
this.name = name
this.age = age
this.gender = gender
}
메서드 이름()
{
console.log(this.name + "이 인사 합니다")
}
}
const person = new Person(인스턴스 값들)
person.메서드 이름()

Class의 Setters, Getters

class 클래스 이름
{
#name //private 인스턴스
constructor(name, age, gender)
{
this.#name = name
this._age = age //protected 인스턴스
this.gender = gender //public 인스턴스
}
set 메서드 이름(매개변수)
{
this.인스턴스 이름 = 매개변수
}
get 메서드 이름()
{
return this.#인스턴스 이름
또는
return this._인스턴스 이름
}
}
타입 변수명 = new Person(매개변수)
변수명.setter 메서드 = "변경할 값"
console.log(변수명.getter메서드 명)

으로 Person Class의 인스턴스인 name, age, gender가 변경되는걸 볼 수 있다.
setter, getter 메서드 만들 때 유의사항
1. class의 인스턴스와 이름이 겹치면 안 된다.
해결 방법 :
1. 인스턴스나 메서드의 이름을 다르게 만들면 된다.
2. 접근 범위 제한 연산자를 사용하면 된다.(주로 사용됨)
(
# : private
_ : protected
일반 이름 : public
)
(중요)정보 은닉(접근 범위 제한 연산자) : Class의 인스턴스나 함수 접근 가능 범위
정보 은닉을 통해 외부에서 Class의 인스턴스 무차별적인 접근과 값 변경을 막을 수 있다.
public(그냥 인스턴스 이름) | protected(_인스턴스 이름) | private(#인스턴스 이름 | |
클래스 내부 | O | O | O |
상속 받은 클래스 | O | O | X |
클래스 외부 | O | X | X |
ex )
private 인스턴스 |
#인스턴스 이름 constructor(매개변수, ...) { this.#인스턴스 이름 = 매개변수 } |
constructor 생성자에서 this.#인스턴스로 접근하기 전 class 내부에서 #인스턴스 이름으로 선언 돼 있어야 한다. |
private 메서드 |
#메서드 이름() { ~~~~~~~~~ } |
private 메서드는 해당 Class 내부에서만 접근 및 변경 가능하다 |
protected 인스턴스 |
constructor(매개변수, ...) { this._인스턴스 이름 = 매개변수 } |
constructor 생성자에서 this._인스턴스로 선언 및 초기화가 가능하다. |
protected 메서드 |
_메서드 이름() { ~~~~~~~~~ } |
protected 메서드는 해당 Class 내부와 상속 받은 Class에서 접근 및 변경 가능하다. |
public 인스턴스 |
constructor(매개변수, ...) { this.인스턴스 이름 = 매개변수 } |
constructor 생성자에서 this.인스턴스로 생성 및 초기화가 가능하다. |
public 메서드 |
메서드 이름() { ~~~~~~~~~ } |
public 메서드는 어느 곳에서 모두 접근 및 변경 가능하다 |
'JavaScript 강의' 카테고리의 다른 글
5-4 Static(정적) Method(메서드) (0) | 2024.08.18 |
---|---|
5-3 상속 (0) | 2024.08.18 |
5-1 DOM (0) | 2024.08.18 |
4-1 콜백 함수의 기본 개념 (0) | 2024.08.14 |
3-3 this(정의, 활용법, 바인딩, call, applay, bind) (0) | 2024.08.14 |