▸JAVA/기본 상식

클래스, 인스턴스, 객체의 차이

코데방 2019. 12. 9.
728x90

혼용하거나 좁은 의미로 쓰기도 하지만 세 가지는 모두 다른 의미를 가지고 있습니다. 사실 클래스와 인스턴스는 의미가 명확한데 객체라는 것은 워낙 포괄적인 의미라 모호할 수 있으니 정확한 개념을 잡고 있어야 커뮤니케이션에 오류가 줄어들 것 같습니다.

 


 

[ 클래스 ]

  • 클래스가 어떻게 생겼는지 정해둔 양식지, 설계도
  • C언어의 구조체 정의와 같음 (실제로 사용하기 전 구조체 정의만 한 상태)

설문조사를 하기 위해 설문조사 항목(변수)와 절차(메소드)를 하나의 문서로 만들어서 컴퓨터에 저장해둔 상태가 클래스입니다. 즉, 아직 인쇄되진 않고 양식만 존재하는 상태입니다.

[ 인스턴스 ]

  • 클래스를 담은 일종의 클래스 변수
  • C언어 구조체에서 구조체 타입 변수 하나를 생성한 것과 동일
  • 객체의 하위 개념 (같은 개념은 아님)

만들어 둔 설문조사 양식을 누군가 쓰기 위해 출력해서 위에다가 이름을 쓴 상태와 같습니다. 컴퓨터 속에만 존재하던 양식을 실제 사용하기 위해 물리적인 실체로 소환한 것이죠. 컴퓨터 내에서는 메모리에 실제로 올라와서 쓸 수 있는 상태가 된 것을 의미합니다.

[ 객체 ]

  • 정확한 의미상으로는 모든 것은 객체라고 할 수 있음
  • 좁은 의미로는 두 개 이상의 기본 단위가 모여서 만들어진 하나의 묶음을 객체라고 표현
  • Java에서는 기본 원시타입이 아닌 타입의 모든 데이터를 객체(참조변수)로 인식
  • 원시타입 : boolean, byte, short, int, long, float, double,char의 8가지 타입

 

 

 


 

클래스는 실제로 인쇄(인스턴스)하기 전에는 의미가 없는 양식지에 불과하지만, Static과 같은 예외는 있습니다. 아래 글을 참조하시면 됩니다.

 

2019/12/10 - [JAVA/기본 문법] - Static, Final의 의미와 사용법

 

728x90

댓글

💲 추천 글