몬그로이

Java는 객체지향 언어다 _객체지향이 뭔데? 본문

Dev 언어 정리 & Self QnA/Java

Java는 객체지향 언어다 _객체지향이 뭔데?

Mon Groy 2024. 4. 22. 12:00

Java는 객체지향 프로그램 언어라고 한다

 

그럼 객체란 무엇일까?

 

우리 주변에는 수 많은 물건들이 있고 하나하나를 모두 객체라고 할 수 있다

심지어 사람들 한 명 한 명도 객체로 볼 수 있으며

더 세분하여 보면 머리, 몸통, 다리 등으로 구분할 수 있다

 

객체지향이라는 말은 하나의 이름을 가진 한 객체로 본다는 것이라고 보면되는데,

책 한 권을 예로 들어 보겠다

 

책 한 권은 객체이다

각 책마다 출판사, 제작날짜, 종이재질 등의 특성을 가지기 때문이다

 

그 책을 분리해보면 커버와 속지로 나눌 수 있다

나눈 순간부터 커버도, 속지도 각 객체로 볼 수 있다

 

커버는 재질이나 두께 등의 특징이 있으며

속지 또한 이루어진 장수, 구성된 종이의 사이즈 등을 특징으로 갖기 때문이다

 

속지를 더 세분화 해 보면 챕터별로 묶거나 낱장으로 구분하여 볼 수 있다

챕터로 나눴을 때는 주장하는 내용들이 각 특징으로 볼 수 있으며

낱장으로 구분했을 때도 각 낱장이 가지는 글자들의 구성을 특징으로 볼 수 있다

 

이로 끝나는 것이 아니라

낱장도, 각 챕터도 더 세분하여 볼 수 있다

그렇게 세분화 하여 세분화된 각각을 또 객체로 볼 수 있다

한 페이지씩, 한 문단씩, 한 문장씩.. 각각 특징을 가지는 객체이다

 

Java는 객체를 지향언어라는 말은

세분하고 또 세분화 하여 표현하며 사용하는 언어라는 뜻이다

프로그램에 있어서는 모듈화 한다고 말할 수 있다

더보기

프로그램 모듈화?

프로그램의 구성 요소를 독립적인 단위로 나누고,

각각의 단위를 객체로 표현하여 프로그램을 구조화 하는 것


왜 Java가 프로그래밍 언어로서 선호되는지는

객체지향언어라는 특징이 프로그래밍에 얼마나 도움이 되는지 생각해보면 된다

 

우선, 세분화 하여 작은 단위에서 보게되면 논리적으로 구성하기 좋아진다

특히, 복잡한 구조를 가진 시스템의 경우 세분하여 보기 때문에 이해하기 쉬워지며

그로인해 유지보수하기도 좋아진다

 

객체는 모두 독립적으로 존재하기 때문에

다른 객체와 상호작용할 수 있게 되어 확장성이 좋고,

변경사항이 발생했을 때도 수정하기 좋다

 

프로그램을 기준으로 다시 생각해 보자

 

프로그램을 모듈화 하면 각 객체는 서로 간섭하지 않고 독립적으로 동작할 수 있게 된다

따라서 부분적으로 활용할 수 있으므로 코드의 재사용성이 높아지고 유지보수성이 좋아진다

 

또한, 객체로 분리되어 있을수록 객체간 결합도가 낮아지므로(객체간 간섭이 적어지므로)

각 객체를 수정하거나 교체하기 쉬워진다

때문에 프로그램의 확장성과 유연성을 증가시킨다