객체지향이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.' 라는 것이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 가상 세계를 구현해 많은 시간과 비용을 절약할 수 있었다. 객체지향이론은 상속, 캡슐화, 추상화 개념을 중심으로 점차 구체적으로 발전되었고, 사용자들의 요구가 빠르게 변화해나가는 현재 상황에서 절차적 언어의 한계에 대한 대안으로써 입지를 넓혀가고 있다.
1. 코드의 재사용성이 높다.
새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
2. 코드의 관리가 용이하다.
코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
3. 신뢰성이 높은 프로그래밍을 가능하게 한다.
제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며,
코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.
객체지향언어의 가장 큰 장점은 '코드의 재사용성이 높고 유지보수가 용이하다.'는 것이다.
상속, 다형성과 같은 객체지향개념을 학습할 때 '재사용성, 유지보수, 중복 코드 제거' 세 가지 관점에서 보면 보다 쉽게 이해할 수 있다.
처음부터 너무 객체지향개념에 얽매여서 고민하기보다는 일단 프로그램을 기능적으로 완성한 다음 어떻게 하면 보다 객체지향적으로 코드를 개선할 수 있을지를 고민하여 점차 개선하는 것이 좋다.
참고
자바의 정석(저자: 남궁성)
객체지향언어의 역사와 개념에 대해 공부했다. 자바에서 가장 중요한 단원이자 자바의 꽃이라고 생각하는 부분이다. 바로 이어서 클래스와 객체가 무엇인지에 대해 공부해보겠다.