기타/프로그래밍 분류

JAVA - 10.객체지향의 개념

zelkova 2011. 6. 28. 21:05

자바 관점에서 '객체, '객체지향', '객체지향 프로그래밍' 등의 용어를 정확히 이해하는 것은 앞으로 자바프로그래밍의 초석을 다지는 과정이다. 자바를 '객체지향 프로그래밍 언어'라고 부르는 것은 자바 객체지향이라는 개념으로 소프트 웨어를 개발한다는 의미이다. 따라서 객체란 무었이고 어떻게 객체지향으로 프로그램을 개발하는 가를 이해하는 것은 자바를 이해하는데 있어서 매우 중요하다.

객체란?
객체란 현실 세계에서 구별되어 존재하는 사물 또는 사상이라고 정의할 수 있다. 독립적으로 식별이 가능하고 상태와 행위를 가지고 있는 모든 실체는 객체이다. 예를 들어, 자동차, 냉장고, 컴퓨터, 매수, 매도, 학생, 건물 등이 현실 세계에 존재하는 유 무형의 실체를 객체라고 정의할 수 있다.

즉, 지금 이 글을 보고 있는 님아도 객체라는 소리

객체지향 프로그래밍
 객체지향 프로그래밍(OOP, Object Oriented Programming)이란 프로그램을 구성하는 각각의 요소(객체)를 정의하고 서로 다른 요소들의 관계를 통해 프로그램을 개발하는 컴퓨터 프로그래밍의 패러다임 중 하나이다.

이러한 객체 지향 프로그래밍은 기존 C, COBOL 등의 언어들이 지향하는 절차적 프로그래밍 기법에 비해 여러 가지 특징이 있다.

1. 추상화
다양한 객체들의 공통성을 도출하여 클래스 또는 객체 클래스라는 그룹으로 다루며, 모든 객체는 유일성이 존재하여 독립적으로 식별이 가능한 것을 추상화라고 한다. 예를 들어서 사람은 주민등록번호, 생일, 나이, 생김새 등에 따라 유일하게 식별이 가능하므로 객체라고 할 수 있다. 또한 모든 사람들의 공통적인 성질과 기능을 도출하여 노트북이라는 클래스로 추상화 할 수 있다.

2.캡슐화
객체의 구현과 사용을 독립시켜 객체의 상세한 내부 로직과 상관없이 객체의 사용방법만 익히면 해당 객체의 사용이 가능한 것을 캡슐화라 한다. 예를 들어서 선풍기를 사용할때 내부구성요소는 캡슐화가 되어 있어서 미풍, 중풍, 약풍, 중지 버튼만 알면 쉽게 사용할수 있는것과 같다.

3. 모듈화.
 복잡한 시스템을 관리하기 쉬운 단위로 분리하여 시스템의 복잡도는 낮추고 재사용성을 높이는 것을 모듈화라 한다. 모듈화를 하면 품질과 생산성을 높일 수 있따.

4. 일반화
구체적인 클래스로 정의된 객체들의 공통성을 추출하여 부모 클래스로 일반화 시키는 것을 일반화라 한다. 냉장고, 선풍기, 텔레비젼, 전자렌지 등은 모두 가전제품이므로 가전제품이라는 클래스로 묶을 수 있다. 즉, 임의의 클래스들 사이에 존재하는 공통사항을 모아 상위 클래스를 구성할 수 있다.

5. 상속성
일반화와는 반대되는 개념으로 계층적 추상화 수준을 분할하여 다양하고 복잡한 시스템을 일반화 시키기 위하여 하나의 일반화된 클래스를 상세화 하여 여러 클래스로 분할하여 사용하는것을 상속성 이라고한다. 이때 분할되는 클래스를 부모 클래스라고 하고, 분할되어 새로이 만들어지는 클래스를 자식 클래스라고 한다.

이외에도 다른 기법이 있으나 너무 길어서 뒤에서 설명하도록 하겠다.

이러한 객체지향 프로그래밍 기법은 하나의 작업에 필요한 성질을 이루게 하면서 각각의 클래스끼리는 독립성을 보장하므로 소프트웨어 공학 관점에서 소프트웨어의 품질을 향상시킬수 있다.
반응형

'기타 > 프로그래밍 분류' 카테고리의 다른 글

Java - 12.Static과 메모리 구조  (2) 2011.06.30
JAVA - 11.클래스와 인스턴스  (0) 2011.06.29
JAVA - 9.주석  (0) 2011.06.28
JAVA - 8.함수  (0) 2011.06.28
JAVA - 7.제어문  (0) 2011.06.28