객체지향 기법 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
[[분류:소프트웨어 공학]] | [[분류:소프트웨어 공학]][[분류:정보처리기사]] | ||
[[분류:정보처리기사]] | |||
==구성 요소== | == 구성 요소 == | ||
===객체(Object)=== | === 객체(Object) === | ||
* 필요한 자료 구조와 이에 수행되는 함수들을 가진 하나의 소프트웨어 모듈 | |||
*필요한 자료 구조와 이에 수행되는 함수들을 가진 하나의 소프트웨어 모듈 | * '''애트리뷰트(Attribute)''' | ||
*'''애트리뷰트(Attribute)''' | ** 객체의 상태를 나타내며, 데이터 또는 속성이라고 함 | ||
**객체의 상태를 나타내며, 데이터 또는 속성이라고 함 | * '''메서드(Method)''' | ||
*'''메서드(Method)''' | ** 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산을 정의한 것, 전통적 시스템의 함수(Function)나 프로시저(Procedure)에 해당하는 연산 기능 | ||
**객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산을 정의한 것, 전통적 시스템의 함수(Function)나 프로시저(Procedure)에 해당하는 연산 기능 | |||
=== 클래스(Class) === | |||
* 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화 | |||
* 어떤 클래스에 속하는 구체적인 객체를 인스턴스(Instance)라고 함 | |||
* 클래스는 인스턴스들이 갖는 변수들과 인스턴스들이 사용할 메서드를 가짐 | |||
=== | === 메시지(Message) === | ||
* 객체들 간의 상호 작용은 메시지를 통해 이루어짐 | |||
* 메시지는 객체에서 객체로 전달됨 | |||
== 객체지향 기법 == | |||
* | === 캡슐화(Encapsulation) === | ||
* | * 자료 부분과 연산(또는 함수) 부분 등 정보처리에 필요한 기능을 한 테두리로 묶는 것 | ||
* 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정 | |||
=== [[정보 은닉|정보 은닉(Information Hiding)]] === | |||
* 객체가 다른 객체로부터 자신의 자료를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것 | |||
* 정보 은닉의 가장 근본적인 목적은 고려되지 않은 영향(Side Effect)들을 최소화 하는 것 | |||
===[[정보 은닉|정보 은닉(Information Hiding)]]=== | |||
*객체가 다른 객체로부터 자신의 자료를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것 | |||
*정보 은닉의 가장 근본적인 목적은 고려되지 않은 영향(Side Effect)들을 최소화 하는 | |||
=== | === 추상화(Abstraction) === | ||
* 주어진 문제나 시스템 중에서 중요하고 관계있는 부분만을 분리하여 간결하고 이해하기 쉽게 만드는 것 | |||
*상위 클래스의 속성과 메서드를 하위 클래스가 물려받는 것 | === 상속(Inheritance) === | ||
*클래스와 객체를 재사용 가능 | * 상위 클래스의 속성과 메서드를 하위 클래스가 물려받는 것 | ||
* 클래스와 객체를 재사용 가능 | |||
===[[ | === [[객체지향 연관성|연관성(Relation)]] === | ||
* 클래스간의 연관관계를 정의 | |||
* 객체간의 관계를 세부적으로 정의하여 구현 용이 | |||
* 일반화(Generalization is-a), 상세화(Specialization has-a), 집단화(Aggregation is-part-of) 등 | |||
*많은 상이한 클래스들이 동일한 메서드명을 이용하는 능력 | === [[다형성|다형성(Polymorphism)]] === | ||
*일반화된 객체는 어떤 특정 객체를 지칭할 수 있기 때문에 같은 동작을 하지만 다른 성질을 가질 수 없음 | * 많은 상이한 클래스들이 동일한 메서드명을 이용하는 능력 | ||
* 일반화된 객체는 어떤 특정 객체를 지칭할 수 있기 때문에 같은 동작을 하지만 다른 성질을 가질 수 없음 |