본문 바로가기

IT/JAVA

[JAVA] 자바 객체란 무엇인가??

자바를 시작하기에 C언어랑 다른 점은 C언어는 절차적 언어로 객체지향이 아닌 점입니다.

C++ 나 C#부터 객체 지향이 시작되는데 C를 배우고 바로 자바를 배우는 것도 나쁘진 않습니다.

 

자바에서 제일 중요한 것이 객체지향이라는 것인데요.

객체는 객체지향 언어의 핵심 요소입니다. 우리가 반드시 이해하고 넘어가야 할 개념입니다.

그럼 객체에 대해서 알아보겠습니다.

 

객체란?

객체는 객체지향 언어의 핵심 요소입니다. 우리가 반드시 이해하고 넘어가야할 개념입니다.

객체는 현실 세계를 모델링한 개념이고 객체 내에는 명사형의 상태와 동사형의 메서드가 존재합니다.

 

예를 들어,

1) 사람이라는 객체가 있다고 가정하고, 실세계에서 사람은 이름과 머리 색깔, 코의 높낮이 같은 상태가 있을 것이고, 말을 하다, 걷고, 뛰고, 일을 하는 행위로 묘사를 할 수 있을 것입니다. 

 

2) 자동차는 명사형 상태와 동사형 행위로 나누어 생각해봅시다.

->명사형 상태: 색깔, 엔진의 힘, 차종, 브레이크, 서스펜션, 외관 , 변속기

->동사형 행위: 현재 속도, 현재 엔진 rpm, 현재 이동거리, 현재 연식 등

 

3) 책을 객체로 묘사해봅시다.

->명사형 상태: 제목, 저자, ISBN, 디자인, 페이지 수 등

책에 대해 생각해보면 딱히 책 자체가 동사형 행위를 할 것 같지는 않다. 이처럼 객체에는 반드시 동사형 행위가 포함되아야 하는 것은 아니다. 명사형 상태만으로도 객체를 구성될 수 있다.

 

4) 컴퓨터를 객체로 묘사해봅시다.

->명사형 상태: 화면 크기, 키보드, 메모리, CPU 등

->동사형 행위: 현재 CPU 사용률, 현재 메모리 사용률, 현재 화면 밝기, 현재 실행되고 있는 프로그램수 등

 

객체지향 프로그래밍의 객체는 개념적으로 지금까지 연습하였던 실세계의 객체와 유사합니다.

객체는 상태와 행위를 가지고 있습니다. 객체의 상태는 필드(Field)에 저장이 되고 행위는 메서드(method)로 표현됩니다. 메서드의 주요 역할은 객체의 상태를 관리하고 외부에 객체의 상태를 제공해주거나 외부의 요소에 의해 객체의 상태를 수정하는 역할도 수행합니다.

객체의 내부 상태를 외부에서 보호하는 메서드의 이러한 역할을 '데이터 캡슐화(data encapsulation)'라고 합니다.

 

객체의 필드에는 CPU, 메모리, 하드디스크, 화면 크기 등이 있을 수 있고 컴퓨터의 현재 상태를 볼 수 있는 메서드와 CPU 또는 메모리, 하드디스크와 같이 필드에 접근할 수 있는 메서드가 있을 수 있습니다. 기존에 만들어진 객체의 경우에는 프로그램에서 다시 사용할 수 있습니다.

예를 들어, 다른 개발자나 다른 곳에서 만들어진 객체를 우리가 만든 프로그램에서 쉽게 가져다 사용할 수 있습니다.

이러한 객체의 특성 때문에 요즘 절차적 언어가 아닌 객체 지향적 언어가 사랑받는 이유입니다.