CS 과제 정리

[CS] 자바 클래스와 인스턴스의 차이

thisnorm 2025. 1. 9. 18:02

📌 클래스(Class)란?

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

📌 객체(Object)란?

  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서
    • 자신의 속성을 가지고 있고, 다른 것과 식별 가능한 것을 말한다.

📌 인스턴스(Instance)란?

  • 클래스가 붕어빵 틀이라면, 그 틀을 통해 생성된 객체(붕어빵) 하나하나를 해당 클래스의 인스턴스라고 한다.
  • 클래스를 사용하여 힙 영역(Heap Area)에 새로운 인스턴스(객체)를 생성할 수 있다.
    • 힙 영역은 프로그램이 실행될 때 동적으로 메모리를 할당받는 공간이다.
    • 즉, 인스턴스란 현실의 객체를 소프트웨어 내에서 구현한 실체라고 볼 수 있다.

📌 요약

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

📌 내가 이해한 버전

클래스는 동물을 예로 들자면 강아지의 생김새, 이름, 나이 등 속성은 필드로,

짖기, 밥먹기 등 행동은 메소드로 정의한다.

그러한 클래스를 기반으로 바둑이, 검둥이 등 이름을 가진 강아지를 생성하게 되면

이 각각이 인스턴스이다.

그리고 이 인스턴스들은 고유한 성질을 지니고 있으므로 객체이다.