728x90
Class(클래스)
개념
- 객체를 정의하고 만들어 내기 위한 설계도 혹은 틀
- 연관되어 있는 변수와 메소드의 집합
특징
- 객체의 상태를 나타내는 필드와 객체의 행동을 나타내는 메소드로 구성
- 필드란 클래스에 포함된 변수
- 메소드란 어떠한 특정 작업을 수행하기 위한 명령문의 집합
Object(객체)
개념
- 소프트웨어 세계에 구현할 대상
- 클래스에 선언된 모양 그대로 생성된 실체
특징
- 클래스의 인스턴스라 부른다
- 객체는 모든 인스턴스를 대표하는 포괄적인 의미
- oop 관점에서 클래스의 타입으로 선언되었을 때 객체라고 부른다
※ OOP(Object Oriented Programming) - 객체 지향 프로그래밍
Instance(인스턴스)
개념
- 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
- 객체를 소프트웨어에 실체화 하면 인스턴스라 부른다
- 실체화된 인스턴스는 메모리에 할당
특징
- 인스턴스는 객체에 포함된다
- oop 관점에서 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라 부른다
- 추상적인 개념과 구체적인 객체사이에 초점을 맞출 경우 사용
- 인스턴스 용어는 반드시 클래스와 객체 사이의 관계로 한정지어서 사용할 필요는 없다
- 인스턴스는 어떤 원본(추상적 개념)으로 부터 생성된 복제본을 의미
클래스, 객체, 인스턴스 차이점
클래스 vs 객체
- 클래스는 설계도, 객체는 설계도로 구현한 모든 대상을 의미
객체 vs 인스턴스
- 클래스의 타입으로 선언되었을 때 객체라 부른다
- 그 객체가 메모리에 할당되어 사용될 때 인스턴스라 부른다
- 객체는 현실 세계에 가깝고, 인스턴스는 소프트웨어 세계에 가깝다
- 객체는 실체, 인스턴스는 관계에 초점되어 있다
728x90
'Java & Spring' 카테고리의 다른 글
[JAVA] Process, Thread 프로세스와 스레드/쓰레드 정리 (0) | 2022.03.29 |
---|---|
[JAVA] OOP(Object-Oriented Programming) 객체 지향 프로그래밍 (0) | 2022.03.28 |
[JAVA] Access Modifier 접근 제어자 (0) | 2022.03.25 |
[JAVA] Overloading 오버로딩 (0) | 2022.03.24 |
[JAVA] Overriding 오버라이딩 (0) | 2022.03.23 |