CS 과제 정리
[CS] 자바 클래스와 인스턴스의 차이
thisnorm
2025. 1. 9. 18:02
📌 클래스(Class)란?
- Java에서 객체를 생성하기 위한 일종의 설계도이다.
- 흔히 붕어빵(객체)를 만들기 위한 **붕어빵 틀(클래스)**이라고 비유를 한다.
- 객체가 가지는 속성(필드)와 동작(메서드)으로 이루어져 있다.
- 이들은 생략될 수도 있고 하나 이상 작성될 수도 있다.
- Java를 실행 시 클래스는 JVM 메모리의 클래스 영역(Class Area)에 로드된다.
📌 객체(Object)란?
- 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서
- 자신의 속성을 가지고 있고, 다른 것과 식별 가능한 것을 말한다.
📌 인스턴스(Instance)란?
- 클래스가 붕어빵 틀이라면, 그 틀을 통해 생성된 객체(붕어빵) 하나하나를 해당 클래스의 인스턴스라고 한다.
- 클래스를 사용하여 힙 영역(Heap Area)에 새로운 인스턴스(객체)를 생성할 수 있다.
- 힙 영역은 프로그램이 실행될 때 동적으로 메모리를 할당받는 공간이다.
- 즉, 인스턴스란 현실의 객체를 소프트웨어 내에서 구현한 실체라고 볼 수 있다.
📌 요약
- 객체란 자신 고유의 속성을 가지는 물리적, 추상적인 모든 대상을 일컫는다.
- 클래스란 객체들을 소프트웨어 내에서 구현하기 위해 만든 설계도이다.
- 이를 통해 생성된 객체 하나하나를 인스턴스라고 부른다.
- 대체로 객체와 인스턴스는 혼용해서 표현한다.
📌 내가 이해한 버전
클래스는 동물을 예로 들자면 강아지의 생김새, 이름, 나이 등 속성은 필드로,
짖기, 밥먹기 등 행동은 메소드로 정의한다.
그러한 클래스를 기반으로 바둑이, 검둥이 등 이름을 가진 강아지를 생성하게 되면
이 각각이 인스턴스이다.
그리고 이 인스턴스들은 고유한 성질을 지니고 있으므로 객체이다.