자바스크립트/JavaScript

[JavaScript] class 문법

KIMJAVAN 2025. 1. 23. 16:04
728x90

1. 클래스란 무엇인가요?

클래스는 **"객체를 만들기 위한 설계도"**입니다. 이 설계도를 기반으로 여러 객체를 만들 수 있어요.

예를 들어, 사람을 나타내는 Person 클래스를 만들면, 이 클래스를 이용해서 여러 사람 객체를 만들 수 있습니다.

2. 클래스 만들기

class Person {
  // 생성자: 객체를 만들 때 기본적인 값을 설정해주는 곳
  constructor(name, age) {
    this.name = name;  // name은 객체의 이름
    this.age = age;    // age는 객체의 나이
  }

  // 메서드: 객체가 할 수 있는 행동을 정의
  greet() {
    console.log(`안녕하세요, 제 이름은 ${this.name}이고, 나이는 ${this.age}살입니다.`);
  }
}

위의 코드에서 Person 클래스는 name과 age라는 속성(정보)을 가지고 있고, greet()라는 행동(메서드)을 정의하고 있어요.

3. 클래스 사용하기

클래스를 사용해서 실제 객체를 만들려면, new 키워드를 사용해요.

 
const person1 = new Person("John", 30);  // 새로운 Person 객체 만들기
person1.greet();  // "안녕하세요, 제 이름은 John이고, 나이는 30살입니다."

이제 person1은 Person 클래스에서 만든 객체고, greet() 메서드를 사용할 수 있어요.

4. 상속

클래스는 상속을 통해 다른 클래스를 확장할 수 있어요. 예를 들어, Employee라는 클래스가 Person 클래스를 상속받아 직업(jobTitle)을 추가할 수 있어요.

class Employee extends Person {
  constructor(name, age, jobTitle) {
    super(name, age);  // 부모 클래스(Person)의 생성자를 호출
    this.jobTitle = jobTitle;  // 직업 속성 추가
  }

  greet() {
    console.log(`안녕하세요, 제 이름은 ${this.name}이고, 나이는 ${this.age}살이며, 직업은 ${this.jobTitle}입니다.`);
  }
}

const employee1 = new Employee("Jane", 28, "개발자");
employee1.greet();  // "안녕하세요, 제 이름은 Jane이고, 나이는 28살이며, 직업은 개발자입니다."

Employee 클래스는 Person 클래스를 확장하고, greet() 메서드를 덮어쓸 수 있어요.

요약

  1. 클래스는 객체를 만들기 위한 설계도입니다.
  2. 클래스에서 생성자는 객체가 만들어질 때 기본 값을 설정하는 곳이에요.
  3. 클래스 안에 메서드는 객체가 할 수 있는 행동을 정의합니다.
  4. 상속을 통해 다른 클래스를 확장하고, 새로운 기능을 추가할 수 있어요.