본문 바로가기

콩's EDUCATION/콩's JAVA

Java 클래스, 객체, 인스턴스, 인스턴스화?

자바를 배우면 가장 헷갈리는 요소를 하나씩 정리하려고 합니다.

 


 

 

객체의 인스턴스화? 그렇다면 인스턴스는 또 뭐냐?

인스턴스와 객체가 비슷하다는데 차이점은 뭐냐?

지식인이나 블로그를 찾아보면 항상 똑같은 의문이 듭니다.

그래서 스스로 정리해봤습니다.

 

1) 객체(object)

 

object 뜻을 검색하면 물건, 물체입니다.

즉 현실 세계에 존재하는 무형의 무언가를 뜻하는 것이죠.

지금 자신이 보고 있는 모니터, 키보드, 마우스 전부 객체라고 할 수 있습니다.

 

2) 클래스(Class)

 

Class는 객체를 정의해놓은 것이라고 합니다.

 

흔히 '틀'이라는 용어를 많이 사용하더군요.

 

저는 제품 설명서라고 얘기하고 싶네요.

제품 설명서에는 스펙과 동작 방법에 대해 기술해 놓습니다.

 

즉, 클래스는 존재하는 객체(각 스펙), 메서드(동작 방법)를 아울러 얘기한 것이죠.

 

예를들어, 모니터라는 객체가 있습니다. 모니터는 제조사가 lg, 삼성 규격은 24인치, 19인치등 있습니다. 즉, 스펙에 해당하는 제조사, 규격이 바로 자바에서 얘기하는 멤버 변수(속성)이 됩니다. 또한, 모니터는 on/off 기능, 명암조절 기능이 있습니다. 바로 이 부분이 메서드가 됩니다.

 

 

class Monitor{

String 제조사 lg, samsung;

int 규격 24, 19;

 

void turnoff(){}

void turnon(){}

void brightup(){}

void brightdown(){}

}

 

 

3) 인스턴스화

 

 

객체의 인스턴스화라는 얘기가 많이 나옵니다.

항상 이해가 안되는 이 어려운말을 간단하게 줄이면,

'new 키워드로 객체를 생성하는 과정' 입니다.

 

Monitor monitest = new Monitor();

 

4) 인스턴스

 

인스턴스화를 거쳐 생성된 객체를 말합니다.