[JAVA] 클래스(class), 객체(object), 인스턴스(instance)의 차이
● 클래스(class) 란,
- 자바에서 사용하는 가장 기초적인 유저가 생성할 수 있는 자료형 중의 하나이다.
- 객체를 정의하고 만들어 내기 위한 설계도 혹은 틀을 말한다.
- 자바의 가장 작은 단위로서 클래스가 모여서 하나의 프로그램이 만들어 진다. 상태(state)를 나타내는 변수와 행동(behavior)을 나타내는 메소드로 구성된다.

● 객체(object) 란,
- 클래스에 선언된 모양 그대로 생성된 구체적인 실체, 즉 구현할 대상이다.
- '클래스의 인스턴스' 라고도 부른다.

● 인스턴스(instance) 란,
- 클래스를 통해서 구현해야할 대상(객체)이 실제로 구현된 구체적인 실체를 말한다.
- 객체에 포함되는 개념이다

예시를 들면,
클래스는 붕어빵을 만들기 위한 틀이 되고 객체는 붕어빵이다. 인스턴스는 붕어빵 틀로 찍어낸 각각 하나하나의 붕어빵이다. 위 팥붕어빵과 말차붕어빵은 같은 타입의 객체이지만, 인스턴스 관점에서는 다르다.
/* 클래스 */
public class Animal {
...
}
/* 객체와 인스턴스 */
public class Main {
public static void main(String[] args) {
Animal cat, dog; // '객체'
// 인스턴스화
cat = new Animal(); // cat은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
dog = new Animal(); // dog은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
}
}
# 클래스 VS 객체
- 클래스는 ‘설계도’, 객체는 ‘설계도로 구현한 모든 대상’을 의미한다. ex) 붕어빵과 붕어빵 틀
# 객체 VS 인스턴스
- 클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
- 객체는 현실 세계에 가깝고, 인스턴스는 소프트웨어 세계에 가깝다.
- 객체는 ‘실체’, 인스턴스는 ‘관계’에 초점을 맞춘다.
* 참고사이트
- https://cloudstudying.kr/lectures/195
09 클래스와 객체 | CloudStudying
# 클래스와 객체 ## 들어가며.. --- 우리는 이전 파트에서 자바의 기본 문법에 대해 알아보았다.  이번 파트에서는 데이터와
cloudstudying.kr
- https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html
[Java] 클래스, 객체, 인스턴스의 차이 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io