상세 컨텐츠

본문 제목

[Java/Spring] 클래스(Class), 객체(Object), 인스턴스(Instance)란?

개발/JAVA, Spring

by 똘똘이박사 2019. 4. 4. 05:49

본문

 

 

 

 

자바에서 말하는 클래스(class)와 객체(object), 인스턴스(Instacne)란 무엇인가?

 

다른 블로그에서 우연히 클래스, 객체, 인스턴스에 대해 깔끔하게 정리되어 있는 포스팅을 보고 옮겨 봅니다.

(출처 : https://cerulean85.tistory.com/149)

 

"'객체'란 소프트웨어 세계에 구현 할 대상이고,
이를 구현하기 위한 설계도가 '클래스' 이며,
이 설계도에 따라 소프트웨어 세계에 구현된 실체가 '인스턴스' 이다." 

 

객체는 프로그램으로 구현 할 실세계의 어떠한 대상을 가리킨다. 이러한 객체를 프로그램으로 구현하려면 세밀히 분석하고 관찰해야 하는데, 이러한 결과를 정리해 놓은 명세서(설계도)가 클래스이다. 이 명세서(설계도)를 바탕으로 프로그램으로 구현해 놓은 것이 인스턴스인 것이다. 따라서 객체는 실물 대상(Object)을 뜻하기 때문에, 소프트웨어 상으로는 존재하는 개념은 아니다. 반면, 인스턴스는 클래스를 바탕으로 프로그래밍하여 구체화 시킨 것이기 때문에 메모리를 할당받아 동작하는 어떠한 개념이다. 같은 듯 하지만 서로 존재하는 세계가 다른 것이다.

하지만 흔히 객체와 인스턴스를 혼용해서 사용하고 있다. 객체가 인스턴스를 포함하고 있는 더 포괄적인 개념이고, 이것을 프로그래밍에서 딱 잘라 구분하기란 애매한 면이 많다.

 

 

 

 

 

반응형

관련글 더보기