Page 197 고등학교 프로그래밍 교과서
P. 197
② 객체 지향 프로그래밍
객체 지향 프로그래밍은 프로그래밍 과정에 필요한 모든 객체들을 클래스로 정의하 객체 지향 언어의 시초
객체 지향 언어의 시초는 1960년에
고 이들 클래스들을 유기적으로 조합하여 프로그래밍을 구현한다. 이때 프로그램의 발표된 ‘시뮬라67’이지만 실질적인
중복을 제거하기 위해서는 객체들의 공통적인 특징에 따라 객체를 그룹화할 필요가 원조는 1970년대 말에 개발된 ‘스
몰토크’이다. 1990년대 이후에는
있다. 예를 들어, 몇 가지 동물을 종류별로 그룹화하여 상속 관계를 그리면 [그림 Ⅲ C++, Java, 델파이 등 많은 언어가
탄생하였다.
-7]과 같이 표현할 수 있다.
•동물
뇌가 있고, 움직인다.
다형성
프로그램 코드 내부에는 수많은 종
류의 메서드가 존재한다. 이 중에 기
능은 동일하나 자료의 형만 다른 경
•사람 •애완 동물 우에는 함수의 이름을 동일하게 하
꼬리 없다. 꼬리 있다. 는 것이 효율적이다. 이처럼 함수의
다리 2개 다리 4개 형태가 다르지만, 함수명은 같은 이
름으로 중복할 수 있는 것을 다형성
•애완동물 2 이라고 부른다. 한편 동일한 연산자
꼬리 길다. 기호를 다른 의미로 활용할 수 있는
•애완동물 1 소리: 야옹 데, 이는 연산자 중복이라고 한다.
꼬리 짧다.
소리: 멍멍
[그림Ⅲ- 7] 동물의 상속 관계의 예
[그림 Ⅲ-8]에서 ‘동물’은 최상위 객체로 ‘부모 클래스’라고 하며 꼬리의 유무, 다리
의 개수 등의 특징에 따라 하위 객체를 구분한다. 하위 객체들의 공통된 특징을 추상
화한 것을 ‘자식 클래스’라고 부른다. 이렇게 표현한 클래스의 상속 관계를 이용하면
프로그램의 중복을 줄이고 코드의 재사용을 높일 수 있다. 객체 지향 방식의 설계에
서는 프로그램이 클래스 단위로 모듈화되어 있어 프로그램의 이식성이 좋고 기능의
추가나 개선이 용이하므로 프로그램의 생산성과 효율성을 높일 수 있다.
class Animal (
Animal int brain;
public walk( ) { ..... } 부모 클래스
...
}
Human Pet class Pet : Animal {
int legs;
자식 클래스
boolean tails;
}
Dog Cat class Dog : Pet {
.....
[그림Ⅲ- 8] 클래스의 상속 관계
1. 프로그래밍의 설계와 절차 195
(책)2015프로그래밍-교과서3차심의본 본문.indb 195 2017-09-05 오후 4:16:47