기술면접 준비

클래스와 인스턴스의 차이

Albosa2lol 2024. 8. 6. 15:56

📖 클래스(Class)란?

  • Java에서 객체를 생성하기 위한 일종의 설계도이다.
    • 흔히 붕어빵(객체)를 만들기 위한 붕어빵 틀(클래스)이라고 비유를 한다.
  • 객체가 가지는 속성(필드)와 동작(메서드)으로 이루어져 있다.
    • 이들은 생략될 수도 있고 하나 이상 작성될 수도 있다.
  • Java를 실행 시 클래스는 JVM 메모리의 클래스 영역(Class Area)에 로드된다.
  •  

📖 인스턴스(Instance)란?

  • 클래스가 붕어빵 틀이라면, 그 틀을 통해 생성된 객체(붕어빵) 하나하나를 해당 클래스의 인스턴스라 한다.
  • 클래스를 사용하여 힙 영역(Heap Area)에 새로운 인스턴스(객체)를 생성할 수 있다.
    • 즉, 인스터스란 현실의 객체를 소프트웨어 내에서 구현한 실체라고 볼 수 있다.

📖 요약

  • 객체(Object)란 자신 고유의 속성을 가지는 물리적, 추상적인 모든 대상을 일컫는다.
  • 클래스(Class)란 객체들을 소프트웨어 내에서 구현하기 위해 만든 설계도이다.
    • 이를 통해 생성된 객체 하나하나를 인스턴스(Instance)라고 부른다.
    • 대체로 객체와 인스턴스는 혼용해서 표현한다.

 

 

 

클래스와 인스턴스의 차이에 대해 설명해주실 수 있을까요?

 

클래스는 객체를 생성하기 위한 청사진 또는 템플릿입니다. 클래스는 속성(필드)과 동작(메소드)을 정의합니다. 예를 들어, Car 클래스는 자동차의 속성(예: 색상, 모델)과 동작(예: 가속, 감속)을 정의할 수 있습니다. 클래스는 설계도와 같아서, 실제 데이터는 가지고 있지 않습니다.

 

인스턴스는 클래스에서 정의된 구조를 기반으로 생성된 구체적인 객체입니다. 인스턴스는 클래스의 속성과 동작을 실제로 구현한 것입니다. 예를 들어, Car myCar = new Car();에서 myCar는 Car 클래스의 인스턴스입니다. 인스턴스는 클래스에서 정의한 속성과 동작을 가지며, 고유한 데이터를 가질 수 있습니다.