IMG-LOGO
공지사항 :

자바 클래스(Class), 객체(Object), 인스턴스(Instance)

lmkfox - 2025-07-10 06:35:23 11 Views 0 Comment

1. 클래스(Class)

클래스는 객체를 만들기 위한 설계도입니다. 클래스는 속성과 기능을 정의하며, 이를 바탕으로 객체가 생성됩니다.

클래스 구성 요소

  • 필드(Field): 객체의 속성(변수)

  • 메소드(Method): 객체의 동작(함수)

  • 생성자(Constructor): 객체를 초기화하는 특수한 메소드

예시

public class Car {
    String color;
    int speed;

    void drive() {
        System.out.println("자동차가 달립니다");
    }
}

위 코드는 Car라는 이름의 클래스(설계도)를 정의한 것입니다.


2. 객체(Object)

객체는 클래스에 의해 만들어진 실체입니다. 클래스에 정의된 필드와 메소드를 실제로 사용할 수 있는 형태입니다. 객체는 메모리에 할당되며, 클래스의 구조를 기반으로 만들어집니다.

Car myCar = new Car();

  • myCar는 Car 클래스의 객체입니다.

  • myCar는 color, speed라는 필드와 drive()라는 메소드를 사용할 수 있습니다.


3. 인스턴스(Instance)

인스턴스는 객체와 거의 동일한 의미로 사용되며, 객체가 클래스를 기반으로 메모리에 생성되었을 때의 구체적인 실체를 의미합니다.

객체와 인스턴스의 차이점은 문맥에 따라 구분되며 실질적으로 같은 것을 가리키는 경우가 많습니다.

  • “객체”는 좀 더 추상적인 개념

  • “인스턴스”는 특정 클래스로부터 생성된 실체라는 점을 강조할 때 사용

예시:

Car car1 = new Car(); // Car 클래스의 인스턴스
Car car2 = new Car(); // 또 다른 인스턴스

  • car1과 car2는 Car 클래스의 서로 다른 인스턴스(객체)

  • 각각 독립적인 상태를 가짐


4. 클래스, 객체, 인스턴스 관계 요약

용어

설명

클래스

객체의 설계도, 틀

객체

클래스에 따라 생성된 실체

인스턴스

특정 클래스에 의해 메모리에 만들어진 객체

비유:

  • 클래스 = 붕어빵 틀

  • 객체/인스턴스 = 붕어빵


5. 객체 사용 예시

public class Person {
    String name;
    int age;

    void introduce() {
        System.out.println("안녕하세요, 제 이름은 " + name + "입니다.");
    }
}

public class Main {
    public static void main(String[] args) {
        Person p1 = new Person();     // 인스턴스 생성
        p1.name = "홍길동";
        p1.age = 25;
        p1.introduce();
    }
}

출력 결과:

안녕하세요, 제 이름은 홍길동입니다.


6. new 키워드

new는 클래스의 인스턴스를 생성하는 연산자입니다.

Car myCar = new Car();

  • new Car() → Car 클래스의 인스턴스를 메모리에 생성

  • myCar는 생성된 객체를 참조하는 변수


7. 여러 객체 생성 예시

Car car1 = new Car();
Car car2 = new Car();

car1.color = "빨강";
car2.color = "파랑";

System.out.println(car1.color); // 빨강
System.out.println(car2.color); // 파랑

각 객체는 독립적인 메모리 공간을 가지며, 서로 영향을 주지 않습니다.


8. 결론 요약

구분

설명

클래스

객체의 설계도, 데이터와 기능 정의

객체

클래스 기반으로 생성된 메모리 상의 실체

인스턴스

특정 클래스에서 생성된 객체

  • 클래스는 설계도이며, 객체 또는 인스턴스는 이 설계도를 기반으로 메모리에 생성된 실체입니다.

  • 객체와 인스턴스는 자주 혼용되며, 문맥에 따라 강조점이 다를 뿐 큰 차이는 없습니다.


댓글