활동/호기심

클래스(class), 객체(object), 인스턴스(instance) 차이점 비교

ByeongJun 2023. 8. 28. 17:08
반응형

프로그램 개발한다는 것은 특정 기능을 만든다는 의미이다. 

그렇다면 클래스(class), 객체(object), 인스턴스(instance) 차이는 무엇일까 

 

public class Animal {                        // 클래스
}

public class Main {                          // 객체+인스턴스
  public static void main(String[] args) {
    Animal bird, dog; // 객체

// 인스턴스화 (객체를 메모리에 할당)
    bird = new Animal(); // bird은 Animal 클래스의 인스턴스
    dog = new Animal(); // dog은 Animal 클래스의 인스턴스
  }
}

 

Animal 클래스를 객체를 만들어 내기 위한 설계도라고 한다면 

클래스에서 선언된 모양 그대로 구현할 대상을 객체(Object)라고 한다.

 

그리고 클래스로 객체를 만드는 것을 인스턴스화라고 한다. 

만들어지고 어디선가 실행된다면 그 순간에 메모리에 올라가게 되는데 그것을 '인스턴스화' 됐다고 한다. 

 

'클래스'에 의해 만들어진 '객체'를 '인스턴스'라고도 한다.

클래스로 찍어낸 것이 객체, 그 객체 개개인은 인스턴스인 셈이다. 

 

 

 

 Animal cat = new Animal();

다시 말해 여기서는 'cat은 객체', 'Animal의 인스턴스'라고 표현할 수 있다.

 

출처 : https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html

 

 

 

차이점
클래스(Class) 객체(Object) 인스턴스(Instance)
객체를 만들어 내기 위한 설계도 설계도로 구현한 모든 대상  
  클래스의 타입으로 선언되었을 때 객체라고 하며 클래스의 인스턴스라고 한다. 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 한다.
  실체에 초점을 두기 때문에 현실 세계에 가깝다고 본다. 관계에 초점을 두기 때문에 소프트웨어 세계에 가깝다고 본다.

 

반응형