* 객체란?
- 소프트웨어 세계에 구현할 대상
- 클래스에 선언된 모양 그대로 생성된 실체 (설계도로 구현한 모든 대상)
- 인스턴스를 포함하는 포괄적인 의미
- oop의 관점에서 클래스의 타입으로 선언되었을때 '객체' 라고 불림
- 프로그래밍에서의 객체는 속성과 기능을 가지는 프로그램 단위
* 클래스란?
- 객체를 만들어 내기 위한 설계도, 툴
- 자바의 가장 작은 단위
- 변수와 메서드의 집합 (상태와 행동)
* 인스턴스란?
- 설계도(클래스)를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
- 객체를 소프트웨어에 실체화 하면 그것을 인스턴스라고 부른다
- 실체화된 인스턴스는 메모리에 할당된다
- 인스턴스는 객체에 포함된다
- oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 인스턴스 라고 부른다.
- 추상적인 개념과 구체적인 객체 사이의 관계에 초점을 맞출 경우에 사용한다.
- 인스턴스는 어떤 원본(추상적인 개념)으로부터 생성된 복제본을 의미한다.
* 의미적 관계
- 객체 > 인스턴스 > 클래스
* 객체 vs. 인스턴스
- 클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
- 객체는 현실 세계에 가깝고, 인스턴스는 소프트웨어 세계에 가깝다
- 객체는 '실체', 인스턴스는 '관계'에 초점을 맞춘다.
- 객체를 클래스의 인스턴스 라고도 부른다
※ Reference
https://cerulean85.tistory.com/149
https://upcake.tistory.com/418
https://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
'Java' 카테고리의 다른 글
[Java] hashcode() (feat. equals()) (1) | 2023.11.22 |
---|---|
[Java] == vs. equals() (1) | 2023.11.22 |
[Java] Java 실행 옵션에 대해서 알아보자! (feat. GC) (0) | 2023.11.21 |
[Java] System.out.println() 왜 사용하면 안돼? (0) | 2023.11.20 |
[Java] try-with-resources 를 사용해보자! (0) | 2023.11.20 |