클래스와 인스턴스의 차이에 대해 설명해주실 수 있을까요?
클래스(Class)란
클래스(Class)란 Java 프로그램에서 객체를 생성하기 위한 일종의 설계도
객체가 가지는 속성(필드)와 동작(메소드)으로 이루어져 있다. 흔히 붕어빵(객체)를 만들기 위한 붕어빵 틀(클래스)이라고 비유를 한다.
클래스는 필드(Field), 생성자(Constructor), 메소드(Method)로 구성되어 있다.
- 필드: 객체의 데이터가 저장되는 곳
- 생성자 : 객체가 실제로 생성될 때 초기화 역할을 담당
- 메소드: 객체의 동작에 해당하는 실행 블록이다.
인스턴스(Instance)란
클래스가 붕어빵 틀이라면 그 틀을 통해 생성된 객체(붕어빵) 하나하나를 해당 클래스의 인스턴스(Instance)라고 부른다.
Java 프로그램 실행 시 클래스는 JVM 메모리의 클래스 영역(Class Area)에 로드되고 이 클래스를 사용하여 힙 영역(Heap Area)에 새로운 인스턴스(객체)를 생성할 수 있다. 즉 인스턴스란 현실의 객체를 소프트웨어내에서 구현한 실체라고 볼 수 있다. 이렇게 생성된 인스턴스들은 각자 고유의 특성을 가지고 독립적으로 존재한다.
정리
클래스란 객체를 생성하기 위한 일종의 설계도이며 필드와 생성자 메소드로 이루어져있다. 인스턴스란 클래스를 이용하여 생성된 객체를 하나하나를 클래스의 인스턴스라고 부르며 구현된 실체로 각자 고유의 특성을 가지고 독립적으로 사용한다.
'CS' 카테고리의 다른 글
[Spring] DI와 IoC (0) | 2023.12.19 |
---|---|
[Java] Java Map의 내부 구현 파악 (1) | 2023.12.18 |
JVM의 힙 & 스택 메모리 (0) | 2023.12.14 |
[Java] 컴파일되는 과정 (0) | 2023.12.13 |
[JPA] 더티 체킹(dirty checking) 정리 (0) | 2023.12.11 |