Download presentation
Presentation is loading. Please wait.
1
Part 3 객체지향 Chapter 5 : 객체지향 개념 Chapter 6 : 클래스 : 속성
3부는 이 책의 핵심으로서 자바의 객체지향에 관해 설명하고 있다. 5장에서는 객체지향의 주요 개념들을 도식을 이용하여 명료하게 설명하였다. 6장에서는 클래스의 속성에 해당하는 객체변수에 관해 자세하게 설명하였다. 7장에서는 클래스의 기능에 해당하는 생성자와 메소드에 관해 설명하였다. 8장에서는 클래스의 상속에 관해 기술하였으며, 9장에서는 인터페이스와 예외처리를 기술하였다..
2
객체지향 개념 CHAPTER 5 Section 1 객체지향의 개요 Section 2 클래스와 객체 Section 3 상속
3
Section 1 객체지향의 개요 객체지향 이론과 역사
컴퓨터를 통하여 실세계와 같은 환경을 흉내(simulation)내기 위해 발전한 이론 실세계의 모든 사물들은 “속성+기능”으로 구성 실세계의 사물들은 각기 다른 속성과 기능을 가지고 상호작용하여 살아간다
4
Section 1 객체지향의 개요 객체지향 이론과 역사-실세계의 객체지향
5
Section 1 객체지향의 개요 객체지향 이론과 역사
객체지향 이론은 1960년대 클래스(class), 상속(inheritance), 캡슐화(encapsulation), 다형성(polymorphism) 등의 개념을 중심으로 발전 1960년 노르웨이의 달(Dahl)과 뉘고르(Nygaard)가 개발한 Simula라는 언어를 최초의 객체지향 언어라 할 수 있다. 이후 객체지향 언어는 Smalltalk, Eiffel, C++ 등을 거쳐 발전
6
Section 1 객체지향의 개요 객체지향과 절차지향
객체지향과 대비되는 개념으로 절차지향(Procedural-oriented)이 있다 절차지향 : 프로그램의 기본 단위가 절차 또는 함수로 정의되며, 절차 또는 함수에 의해 속성(데이터)들이 공유되는 형태
7
Section 1 객체지향의 개요 객체지향과 절차지향
8
Section 1 객체지향의 개요 객체지향의 장점 문제를 쉽고 자연스럽게 프로그램화(모델링) 할 수 있다
쉬운 프로그램의 개발로 인한 생산성 향상 시킬 수 있다 프로그램 모듈을 재사용 할 수 있다
9
Section 2 클래스와 객체 클래스 클래스는 객체를 생성하는 형판(template)
클래스와 객체는 붕어빵틀과 붕어빵의 관계와 같다
10
Section 2 클래스와 객체 클래스와 객체의 구성 객체는 “속성 + 기능”으로 구성
객체를 생성하는 클래스 역시 “속성 + 기능”으로 구성 자바 프로그램을 만들기 위해서는... 객체를 생성하기 위한 클래스를 작성하여야 하고 작성된 클래스로부터 객체를 생성하고 생성된 객체 사이의 관계를 정의하여 프로그램을 작성한다
11
Section 2 클래스와 객체
12
Section 2 클래스와 객체 객체의 생성 클래스로부터 객체를 생성하는 과정을 실체화(instantiation)라고 한다
객체를 인스턴스(instance)라고 한다
13
Section 2 클래스와 객체 객체의 생성 하나의 클래스로부터 객체가 생성될 때 모든 객체는 같은 속성과 기능을 가지지만, 속성에 저장된 값은 모두 다르게 지정될 수 있다 기능과 속성은 같지만 속성의 값은 다르게 지정될 수 있다
14
Section 2 클래스와 객체 객체의 생성
15
Section 3 상속 상속 기존 클래스의 모든 속성과 기능을 상속받고, 더 필요한 속성과 메소드를 추가하여 새로운 클래스를 생성하는 개념이 상속 추가된 기능
16
Section 3 상속 상속
17
Section 3 상속 상속 상속의 확장의 개념을 가지며, 계층 구조를 가질 수 있다
18
Section 3 상속 상속 상위 클래스의 모든 것을 상속받고 새로운 속성과 메소드가 추가
19
Section 4 캡슐화 캡슐화 객체가 동작하는 기능만 알고 그 객체를 사용하게 하는 개념
객체의 자세한 동작 방법은 비밀(알려지면 안됨) 비밀을 알려고 하면 오류 발생
20
Section 4 캡슐화 캡슐화 캡슐화를 통하여 정보 은폐(Information hiding)를 제공 캡슐화(정보은폐)의 장점
객체에 포함된 정보의 손상과 오용을 막는다 객체 내부의 조작 방법이 바뀌어도 사용방법은 바뀌지 않는다 데이터가 바뀌어도 다른 객체에 영향을 주지 않아 독립성이 유지 처리된 결과만 사용하므로 객체의 이식성이 좋다 객체를 부품화 할 수 있어 새로운 시스템의 구성에 부품처럼 사용할 수 있다
21
Section 4 캡슐화 캡슐화(정보은폐)
22
Section 4 캡슐화 캡슐화(정보은폐)
23
Section 5 메시지(Message) 메시지 객체에 일을 시키는 행위 메시지의 구성 메지지를 받을 객체의 이름 메소드 이름
메소드 수행에 필요한 인자(argument)
24
Section 5 메시지(Message) 메시지 메소드 탐색 메소드를 수행하라는 메시지가 도착하면....
클래스로부터 생성된 객체는 속성만 가지고 메모리에 생성 메소드는 클래스(클래스 메모리 영역)에 저장되어 객체들이 공유 메소드를 수행하라는 메시지가 도착하면.... 해당 클래스에서 메소드를 찾아 수행 해당 클래스에 없으면, 그 클래스가 상속된 상위 클래스의 메소드를 찾아 수행 위와 같은 과정을 반복하며, 최상위 클래스에서도 메소드가 없으면 오류발생
25
Section 5 메시지(Message) 메시지 : 메소드 탐색
26
Section 5 메시지(Message) 메시지 : 메소드를 호출하는 메시지 객체이름 메소드이름 메소드매개변수
27
Section 6 다형성(Polymorphism)
다형성은 “서로 다른 객체”가 “동일한 메시지”에 대하여 “서로 다른 방법으로 응답”할 수 있는 기능을 의미한다
28
Section 6 다형성(Polymorphism)
29
객체지향의 개요 클래스와 객체 Chapter 5 학습정리 ① 객체지향은 실세계의 요소들을 “속성+기능”으로 표현한 것이다.
② 자바는 객체지향 언어를 대표하는 성공한 언어이다. 클래스와 객체 ① 클래스는 객체를 생성하는 형판(template) 역할을 한다. ② 하나의 클래스로부터 다수 개의 객체가 생성된다. ③ 클래스는 “속성+기능”으로 구성된다. ④ 클래스로부터 객체를 생성하는 과정을 실체화(instantiation)라고 하며, 객체를 인스턴스라 부르기도 한다. ⑤ 객체지향은 절차지향과는 달리 프로그램의 기본 단위가 객체(속성+기능)이다.
30
상속 캡슐화 Chapter 5 학습정리 ① 상속을 이용하여 비슷한 기능을 가진 클래스들을 계층구조 형태로 구성할 수 있다.
② 상속은 상위 클래스의 모든 속성과 기능을 상속받고, 추가로 더 가지는 확장(extend)의 개념이다. ③ 자바에서는 하나의 클래스만을 상위 클래스로 가질 수 있다. 즉 다중상속을 허용하지 않는다. 캡슐화 ① 캡슐화는 꼭 필요한 내용만 보여주고, 불필요한 내용을 감춘다는 개념이다. ② 클래스를 작성할 때는 꼭 필요한 내용만 공개해야 한다. ③ 클래스를 작성할 때 캡슐화 개념을 적용하지 않으면, 클래스가 잘못 사용될 수 있다. ④ 캡슐화의 개념을 적용하여 정보 은폐(Information hiding)를 달성할 수 있다.
31
메시지 다형성 Chapter 5 학습정리 ① 생성된 객체들 사이의 상호관계를 정의한 것이 메시지이다.
② 메시지를 통하여 객체에 일을 시킨다. ③ 메시지는 객체 이름, 메소드 이름, 메소드 수행에 필요한 인자(argument)를 포함한다. 다형성 ① 다형성은 다양한 변신을 의미하는 개념이다. ② 다형성은 “서로 다른 객체가 동일한 메시지에 대하여 서로 다른 방법으로 응답할 수 있는 기능”을 의미한다.
Similar presentations