본문 바로가기

Language/Java

[Java] 클래스(Class), 객체(Object), 인스턴스(Instance)와 그 차이점

반응형

Intro

안녕하세요. 플리체입니다.

Java를 공부하면서 정말 다양한 용어들을 만나게 되는데, 개인적으로 개념적인 부분이 정리가 안되었던 주제에 대해서 설명드리려 합니다.

Java의 클래스(Class), 객체(Object), 인스턴스(Instance)와 그 차이점에 대해 말씀드리겠습니다.

 

1. 클래스(Class)

  • 클래스는 객체를 생성하기 위한 설계도 또는 템플릿입니다. 
  • 클래스는 객체의 속성(멤버 변수)과 동작(메소드)을 정의합니다. 
  • 클래스는 실체화되지 않은 추상적인 개념으로, 객체를 생성하기 위해 사용됩니다. 
  • 여러 객체를 생성할 수 있으며, 클래스를 기반으로 생성된 객체들은 동일한 속성과 동작을 가집니다.
class Person {
    String name;
    int age;
    
    void sayHello() {
        System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
    }
}

예를 들어, "Person" 클래스는 사람의 속성과 동작을 정의하는데 사용될 수 있습니다. 이 클래스는 사람의 이름, 나이 등과 같은 속성을 가지며, 사람이 인사를 할 수 있는 동작을 정의할 수 있습니다.

 

2. 객체(Object)

  • 객체는 클래스의 인스턴스입니다. 
  • 클래스를 기반으로 생성된 실체로, 메모리에 할당되어 사용됩니다. 
  • 객체는 클래스의 속성(멤버 변수)과 동작(메소드)을 가지고 있습니다. 
  • 객체는 클래스의 특정한 인스턴스를 나타내며, 클래스에서 정의된 속성에 대한 실제 값이 할당되어 있습니다.

예를 들어, "Person" 클래스의 객체를 생성하면 실제 사람 개체가 만들어집니다. 이 객체는 클래스에서 정의된 속성인 이름과 나이에 대한 실제 값을 가지게 됩니다.

Person person = new Person(); // "Person" 클래스의 객체 생성
person.name = "John"; // 객체의 속성 값 설정
person.age = 30;
person.sayHello(); // 객체의 동작 실행

위의 예제에서 person은 "Person" 클래스의 객체입니다. 객체를 생성할 때 new 키워드를 사용하여 클래스를 인스턴스화하고, 이를 변수에 할당함으로써 객체를 참조할 수 있습니다. 그 후에는 객체의 속성에 접근하여 값을 설정하거나, 객체의 동작을 실행할 수 있습니다.

 

3. 인스턴스(Instance)

  • 인스턴스는 클래스로부터 생성된 객체를 가리키는 용어입니다. 
  • 클래스는 객체를 생성하기 위한 템플릿이며, 인스턴스는 그 템플릿을 통해 실제로 생성된 객체를 가리킵니다. 
  • 즉, 클래스의 인스턴스화 과정을 통해 객체가 생성되고, 해당 객체를 인스턴스라고 합니다.

예를 들어, "Person" 클래스를 인스턴스화하여 객체를 생성하는 과정은 다음과 같습니다.

Person person = new Person(); // "Person" 클래스의 인스턴스 생성

위의 코드에서 new Person()은 "Person" 클래스를 인스턴스화하여 실제로 메모리에 할당된 객체를 생성합니다. 그리고 이 객체를 person이라는 변수로 참조하게 됩니다.

 

정리

따라서, 자바에서 클래스는 객체를 생성하기 위한 설계도 또는 템플릿이며, 객체는 클래스의 인스턴스로 실체화된 것을 의미합니다. 인스턴스는 클래스를 통해 생성된 실제 객체를 가리키는 용어입니다.
반응형