Language/JAVA

[JAVA] 객체, 클래스, 인스턴스의 차이

gangintheremark 2023. 7. 17. 13:27
728x90

객체 Object 

객체지향이론에서는 소프트웨어 세계에 구현할 대상으로 사물과 같은 유형적인 것 뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다.

 

클래스 Class

객체를 정의해놓은 것으로 객체의 설계도 또는 틀이라고 할 수 있다. 클래스에는 객체와 연관되어 있는 변수와 메소드 그리고 생성자가 있다.

 

인스턴스 Instance

  • 객체가 메모리에 할당되어 실제 사용될 때 인스턴스 라고 한다.
  • 인스턴스는 어떤 원본(추상적인 개념)으로부터 생성된 복제본을 의미한다
  • 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화 라고 하며, 만들어진 객체를 그 클래스의 인스턴스라고 한다.
/* 클래스 */
public class Cat {
    // 인스턴스 변수
    String name; 
    int age;

    // 생성자
    public Cat() { } 
    
    // 메소드
    public String getName() {
    	return name;
    }
}

public clas Main {
    public static void main(String[] args) {
        // 클래스의 인스턴스화 
        Cat c = new Cat(); // 객체 c 는 Cat 클래스의 인스턴스 (객체를 메모리에 할당)
    }
}

 

붕어빵🍞에 빗대어 표현하자면 클래스는 붕어빵을 만들기 위한 틀, 객체는 붕어빵이다. 인스턴스는 붕어빵을 틀로 찍어낸 각각의 붕어빵이라 생각하면 된다.

728x90