728x90
혼용하거나 좁은 의미로 쓰기도 하지만 세 가지는 모두 다른 의미를 가지고 있습니다. 사실 클래스와 인스턴스는 의미가 명확한데 객체라는 것은 워낙 포괄적인 의미라 모호할 수 있으니 정확한 개념을 잡고 있어야 커뮤니케이션에 오류가 줄어들 것 같습니다.
[ 클래스 ]
- 클래스가 어떻게 생겼는지 정해둔 양식지, 설계도
- C언어의 구조체 정의와 같음 (실제로 사용하기 전 구조체 정의만 한 상태)
설문조사를 하기 위해 설문조사 항목(변수)와 절차(메소드)를 하나의 문서로 만들어서 컴퓨터에 저장해둔 상태가 클래스입니다. 즉, 아직 인쇄되진 않고 양식만 존재하는 상태입니다.
[ 인스턴스 ]
- 클래스를 담은 일종의 클래스 변수
- C언어 구조체에서 구조체 타입 변수 하나를 생성한 것과 동일
- 객체의 하위 개념 (같은 개념은 아님)
만들어 둔 설문조사 양식을 누군가 쓰기 위해 출력해서 위에다가 이름을 쓴 상태와 같습니다. 컴퓨터 속에만 존재하던 양식을 실제 사용하기 위해 물리적인 실체로 소환한 것이죠. 컴퓨터 내에서는 메모리에 실제로 올라와서 쓸 수 있는 상태가 된 것을 의미합니다.
[ 객체 ]
- 정확한 의미상으로는 모든 것은 객체라고 할 수 있음
- 좁은 의미로는 두 개 이상의 기본 단위가 모여서 만들어진 하나의 묶음을 객체라고 표현
- Java에서는 기본 원시타입이 아닌 타입의 모든 데이터를 객체(참조변수)로 인식
- 원시타입 : boolean, byte, short, int, long, float, double,char의 8가지 타입
클래스는 실제로 인쇄(인스턴스)하기 전에는 의미가 없는 양식지에 불과하지만, Static과 같은 예외는 있습니다. 아래 글을 참조하시면 됩니다.
2019/12/10 - [JAVA/기본 문법] - Static, Final의 의미와 사용법
728x90
'▸JAVA > 기본 상식' 카테고리의 다른 글
Java의 메모리 구조_자바가 상대적으로 느린 이유[2/3] (0) | 2019.12.09 |
---|---|
Java의 메모리 구조_기본 구조[1/3] (1) | 2019.12.09 |
객체지향 언어의 특징(다형성) [4/4] (0) | 2019.12.09 |
객체지향 언어의 특징(상속) [3/4] (0) | 2019.12.09 |
객체지향 언어의 특징(캡슐화) [2/4] (0) | 2019.12.09 |
댓글