기존 대부분의 언어들이 프로그램의 프로세스 흐름을 표현하는데 비중을 두고 개발되었지만, 객체지향 언어들은 데이터나 정보의 표현에 비중을 두고 있습니다. 객체지향 프로그래밍에서는 대표적으로 객체가 이 Data부분에 해당됩니다. 객체지향 언어들은 전역변수를 거의 사용하지 않지만 일부 객체지향 언어들이 전역변수를 허용합니다. 하지만 각 모듈의 독립성을 유지하기 위해 그 사용은 권장되지 않습니다.
상자 모양에 외부 인터페이스가 추가된 것이 하나의 클래스를 나타내며, 여러 클래스들은 상속 구조로 연결되어 있습니다. 이처럼 객체지향 언어들은 전역 변수의 사용을 제한하고, 객체와 클래스란 장치를 사용하여 모듈간의 높은 독립성을 유지합니다.
또한, 클래스간의 상속 관계를 정의할 수 있도록 하여 한 프로그램 내의 중복 코드를 최소화하며, 유지보수도 용이하게 해줍니다.
-> 객체지향 프로그램의 유일한 단점은 실행 시의 속도가 느리다는 점
1. 생산성 향상
객체지향 기술에서 추구하는 궁극적인 목표는 잘 설계된 클래스들, 즉 하드웨어의 IC처럼 소프트웨어 라이브러리를 재사용하는 것입니다. 이전의 개발 방법과는 달리 객체는 독립적이어서 이를 재사용함으로 생산성이 증가하게 됩니다.
2. 자연적인 모델링
객체, 클래스, 속성, 상속 및 다형성은 우리의 일상생활에서 보통 사람들이 대하고 생각하는 방식을 그대로 프로그램 언어로 표현할 수 있게 해줍니다.
3. 재사용
객체지향 프로그래밍은 코드의 재사용을 극대화시킵니다. 한 프로그램 내에서 하위 클래스들이 상위 클래스의 속성을 표현한 코드를 재사용하며, 새로운 프로그램 개발 시 기존 프로그램이 갖고 있는 클래스 상속 구조에서 많은 클래스들을 소프트웨어 IC로 재사용 할 수 있습니다.
4. 유지보수의 용이성
객체지향 프로그램은 기존의 기능을 수정하거나 새로운 기능을 추가하기가 용이합니다. 기존 기능을 수정 시 함수를 새롭게 바꾸더라도 캡슐화와 그 함수의 세부정보가 은폐되어 있어 주변에 미치는 영향을 최소화합니다.
새로운 객체의 종류를 추가 할때에는 상속을 통하여 기존의 기능을 활용하고 존재하지 않는 새로운 속성만 추가하면 되므로 매우 경제적입니다. 이외에도 점진적 프로그램 개발의 용이성, 요구사항 변화에 대해 안정된 프로그램 구조 등을 볼 수 있습니다.
<자바에서의 첫번째 임무는 "클래스를 생성하는 것">
붕어빵 기계 틀 = 클래스 / 붕어빵 = 객체 라고 생각하면, 사람이 붕어빵틀을 먹을 수 없듯이 객체지향 언어에서 실제로 실행되는 것은 클래스(기계 틀)가 아닌 객체(붕어빵)입니다. 클래스(기계 틀)는 객체를 생성하는 역할만 합니다.
객체지향에서 "데이터"를 처리할 때 사용되는 건 클래스에서 만들어진 객체이며, 클래스가 아닙니다.
자바는 객체지향언어이고, 현실세계에서 존재하는 사물을 객체로 정의합니다. 이런 객체는 속성+기능으로 이루어져있고, 자바에서 객체를 사용하기 위해서는 무조건 클래스를 작성해야 합니다. (자바프로그램에서 객체를 직접 작성하여 사용할 방법은 없습니다.)
자바프로그램은 객체를 위해서 우선적으로 클래스를 작성하고, 그 클래스로부터 객체를 생성한 후에 생성된 객체 사이의 관계를 정의해서 만들어집니다.
'용어정리' 카테고리의 다른 글
Spring 설정 시 참고사항 (0) | 2016.09.28 |
---|---|
인터페이스(Interface) (0) | 2016.09.28 |
프레임워크란? (0) | 2016.09.28 |
MVC 패턴에 대하여 (0) | 2016.09.28 |
Post 와 Get의 차이 (0) | 2016.09.28 |
댓글