Lined Notebook

클래스와 객체 인스턴스의 차이 ★★★

by yjym33

클래스 (Class)


클래스는 객체를 생성하기 위한 일종의 설계 도면 또는 템플릿입니다. 클래스는 객체가 가져야 할 속성 (데이터 멤버 또는 필드)와 메서드 (함수)를 정의합니다.
클래스는 개체들이 공유하는 공통적인 특성을 나타내며, 객체를 생성하기 위한 청사진 역할을 합니다.


특징


클래스는 객체를 생성하기 위한 설계도이므로, 여러 객체 인스턴스를 생성할 수 있습니다.
객체의 속성과 메서드를 정의하기 위한 멤버 변수와 멤버 함수를 포함합니다.
클래스의 인스턴스를 생성하기 전까지는 메모리에 할당되지 않습니다.

 

객체 인스턴스 (Object Instance)


객체 인스턴스는 클래스의 실제 인스턴스화된 복사본입니다. 클래스의 설계도를 기반으로 실제 데이터와 메서드가 포함된 개체입니다.
객체 인스턴스는 클래스의 속성을 가지며 클래스에서 정의한 메서드를 실행할 수 있습니다.


특징


객체 인스턴스는 클래스를 기반으로 생성되며, 각각 고유한 데이터와 상태를 가집니다.
여러 객체 인스턴스를 동시에 생성할 수 있으며, 각 객체는 독립적으로 동작합니다.
객체 인스턴스는 클래스의 정의에 따라 메모리에 할당됩니다.

 

 

클래스 vs. 객체 인스턴스


클래스는 객체를 생성하기 위한 설계도이며, 공통 속성과 메서드를 정의합니다.
객체 인스턴스는 클래스를 기반으로 생성되며, 실제 데이터와 동작을 포함합니다.
여러 객체 인스턴스를 생성하여 클래스를 활용할 수 있으며, 각 객체는 독립적으로 동작합니다.

 

// 클래스 정의
class Car {
    constructor(make, model, year) {
        this.make = make;
        this.model = model;
        this.year = year;
        this.speed = 0;
    }

    // 메서드 정의
    accelerate() {
        this.speed += 10;
        console.log(`${this.year} ${this.make} ${this.model} 가속 중. 현재 속도: ${this.speed}km/h`);
    }

    brake() {
        this.speed -= 5;
        console.log(`${this.year} ${this.make} ${this.model} 감속 중. 현재 속도: ${this.speed}km/h`);
    }
}

// 객체 인스턴스 생성
const car1 = new Car('Toyota', 'Camry', 2020);
const car2 = new Car('Tesla', 'Model 3', 2021);

// 객체 메서드 실행
car1.accelerate();  // 출력: 2020 Toyota Camry 가속 중. 현재 속도: 10km/h
car2.accelerate();  // 출력: 2021 Tesla Model 3 가속 중. 현재 속도: 10km/h
car1.brake();       // 출력: 2020 Toyota Camry 감속 중. 현재 속도: 5km/h
car2.brake();       // 출력: 2021 Tesla Model 3 감속 중. 현재 속도: 5km/h

각 객체 인스턴스는 클래스 Car의 설계를 따르며, 고유한 속성 (make, model, year)과 동작 (accelerate 및 brake)을 가집니다.

블로그의 정보

생각보다 실천을

yjym33

활동하기