1 / 35

5 장 . 객체지향 개념

5 장 . 객체지향 개념. Java. public class SumTest { public static void main(String a1[]) { int a, b, sum; a = Integer.parseInt (a1[0]); b = Integer.parseInt (a1[1]); sum = a + b ; // 두 수를 더하는 부분입니다 System.out.println (" 두수의 합은 " + sum + " 입니다 "); } }.

errol
Download Presentation

5 장 . 객체지향 개념

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5장. 객체지향 개념 Java public class SumTest { public static void main(String a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두 수를 더하는 부분입니다 System.out.println("두수의 합은 " + sum + "입니다"); } }

  2. 학습목표

  3. 목차 • section 1 객체지향의 개요 • 1-1 객체지향 이론과 역사 • 1-2 객체지향과 절치지향 • 1-3 객체지향의 장점 • section 2 클래스와 객체 • 2-1 클래스와 객체의 구성 • 2-2 객체의 생성 • section 3 상속(Inheritance) • section 4 캡슐화 (Encapsulation) • section 5 메시지(Message) • section 6 다형성(Polymorphism)

  4. 1 객체지향의 개요 1-1 객체지향 이론과 역사 • 객체지향(Object-Oriented)이론 • 컴퓨터를 통하여 실세계와 같은 환경을 흉내(simulation)내기 위해 발전한 이론 • 실세계를 구성하는 사물의 속성과 기능 165 page

  5. 1 객체지향의 개요 1-1 객체지향 이론과 역사 • 객체지향 언어의 역사 166 page

  6. 1 객체지향의 개요 1-2 객체지향과 절치지향 • 절차지향 언어 • 프로그램의 기본 단위는 절차(procedure) 또는 함수(fuction)로 정의 • 객체지향 언어 • 프로그램의 기본단위가 객체 • 객체는 “속성+기능”으로 구성

  7. 1 객체지향의 개요 1-2 객체지향과 절차지향 • 절차지향과 객체지향 167 page

  8. 1 객체지향의 개요 1-3 객체지향의 장점 • 객체지향의 장점 • 문제를 쉽고 자연스럽게 프로그램화(모델링) 할 수 있다. • 쉬운 프로그램의 개발로 인한 생산성을 향상시킬 수 있다. • 프로그램 모듈을 재사용할 수 있다.

  9. 2 클래스와 객체 • 클래스 • 하나의 클래스로부터 여러 개의 객체를 생성하기 위해 사용하는 형판 169 page

  10. 2 클래스와 객체 2-1 클래스와 객체의 구성 • 객체 • “속성+기능”으로 구성 • 객체를 생성하는 클래스 역시 “속성+기능”으로 구성

  11. 2 클래스와 객체 2-1 클래스와 객체의 구성 • 실습예제 • 다음은 성적의 평균을 구하는 클래스를 정의한 예이다. 일반적으로 객체지향에서 속성은 필드, 데이터, 속성변수, 객체 변수 등 다양한 용어를 사용하고, 기능은 메소드(method)라는 용어를 사용한다. 170 page

  12. 2 클래스와 객체 2-1 클래스와 객체의 구성 • 실습예제 속성 기능

  13. 2 클래스와 객체 2-2 객체의 생성 • 실체화(instantiation) • 클래스로부터 객체를 생성하는 과정 • 인스턴스(instance)라 부름 • 실습예제 • 위에서 작성된 평균을 구하는 클래스로부터 객체를 생성하는 예를 살펴보자. • 평균을 구하는 클래스로부터 객체를 생성 171 page

  14. 2 클래스와 객체 2-1 클래스와 객체의 구성 • 실습예제 생성된 객체의 속성에 서로 다른 값을 저장 student1 객체 생성 student2 객체 생성

  15. 2 클래스와 객체 2-1 클래스와 객체의 구성 • 프로그램 설명 • 03 : student1 객체를 생성한다. • 04 : student2 객체를 생성한다. • 05~06 : 생성된 student1과 student2 객체의 각 속성에 서로 다른 값을 저장한다.

  16. 3 상속(Inheritance) • 상속 • 기존 클래스로부터 모든 속성과 메소드를 상속 • 더 필요한 속성과 메소드를 추가하여 새로운 클래스를 생성

  17. 3 상속(Inheritance) • 실습예제 • 앞 절에서 사용한 평균을 구하는 클래스에 총점을 구하는 방법이 추가된 클래스를 상속을 이용하여 작성해보자. 173 page

  18. 3 상속(Inheritance) • 실습예제 상위 클래스 정의 상위 클래스를 상속받아 하위 클래스 정의

  19. 3 상속(Inheritance) • 실습예제 Avg1Total 객체 생성 상속받은 속성값 설정 생성된 객체에서 정의된 메소드 호출

  20. 3 상속(Inheritance) • 프로그램 설명 • 1~0 : Avg1 클래스를 정의한다. • 10~16 : Avg1 클래스를 상속받아 Avg1Total 클래스를 정의한다. • 11-15 : Avg1Total 클래스에 total 메소드를 추가한다. • 19~20 : Avg1 클래스를 상속받은 Avg1Total 클래스로부터 객체를 생성한다. • 21~22 : Avg1으로부터 상속받은 name 속성의 값을 설정한다. • 25~26 : Avg1Total 클래스에서 새로 정의한 total 메소드를 호출한다.

  21. 3 상속(Inheritance) • 클래스의 상속은 확장(extend)의 개념을 가짐 • 상위 클래스의 모든 것을 상속받고 추가로 더 가지는 클래스를 구성하는 것 • 클래스의 계층 구조 175 page

  22. 3 상속(Inheritance) • 클래스 계층 구조에서의 상속 176 page

  23. 4 캡슐화(Encapsulation) • 캡슐화 • 감기에 걸렸을 때 먹는 캡슐약과 같은 개념 • 캡슐 약에는 많은 성분이 포함되어 있지만, 단순히 감기를 낫게 해 준다고 생각 177 page

  24. 4 캡슐화(Encapsulation) • 캡슐화를 통한 ‘정보의 은폐(information hiding)’의 장점 • 객체에 포함된 정보의 손상과 오용을 막을 수 있다. • 객체 내부의 조작 방법이 바뀌어도 사용방법은 바뀌지 않는다. • 데이터가 바뀌어도 다른 객체에 영향을 주지 않아 독립성이 유지된다. • 처리된 결과만 사용하므로 객체의 이식성이 좋다. • 객체를 부품화 할 수 있어 새로운 시스템의 구성에 부품처럼 사용할 수 있다. 178 page

  25. 4 캡슐화(Encapsulation) • 실습예제 공개되는 속성 공개되지 않는 속성 공개된 속성에 접근. 오류 발생하지 않음 공개되지 않은 속성에 접근. 오류 발생

  26. 5 메시지(Message) • 메시지 • 객체에 일을 시키는 행위 • 객체 사이의 메시지 전달 179 page

  27. 5 메시지(Message) • 상속된 구조에서의 메소드 탐색 180 page

  28. 5 메시지(Message) • 실습예제 객체의 메소드 호출 메시지

  29. 6 다형성(Polymorphism) • 다형성(Polymorphism) • 객체지향의 중요한 개념 중에 하나 • 서로 다른 객체가 동일한 메시지에 대하여 서로 다른 방법으로 응답할 수 있는 기능

  30. 6 다형성(Polymorphism) • 실습예제 같은 이름을 가진 메소드 선언 (메소드 오버로딩) 매개변수가 2개일 때 수행 같은 이름을 가진 메소드 선언 (메소드 오버로딩) 매개변수가 3개일 때 수행

  31. 6 다형성(Polymorphism) • 실습예제 다른 객체, 동일 메시지

  32. 학습정리 • 객체지향의 개요 • 객체지향은 실세계의 요소들을 “속성+기능”으로 표현한 것이다. • 자바는 객체지향 언어를 대표하는 성공한 언어이다. • 클래스와 객체 • 클래스는 객체를 생성하는 형판(template) 역할을 한다. • 하나의 클래스로부터 다수 개의 객체가 생성된다. • 클래스는 “속성+기능”으로 구성된다. • 클래스로부터 객체를 생성하는 과정을 실체화(instantiation)라고 하며, 객체를 인스턴스라 부르기도 한다. • 객체지향은 절차지향과는 달리 프로그램의 기본 단위가 객체(속성+기능)이다.

  33. 학습정리 • 상속 • 상속을 이용하여 비슷한 기능을 가진 클래스들을 계층구조 형태로 구성할 수 있다. • 상속은 상위 클래스의 모든 속성과 기능을 상속받고, 추가로 더 가지는 확장(extend)의 개념이다. • 자바에서는 하나의 클래스만을 상위 클래스로 가질 수 있다. 즉 다중상속을 허용하지 않는다. • 캡슐화 • 캡슐화는 꼭 필요한 내용만 보여주고, 불필요한 내용을 감춘다는 개념이다. • 클래스를 작성할 때는 꼭 필요한 내용만 공개해야 한다. • 클래스를 작성할 때 캡슐화 개념을 적용하지 않으면, 클래스가 잘못 사용될 수 있다 • 캡슐화의 개념을 적용하여 정보 은폐(Information hiding)를 달성할 수 있다.

  34. 학습정리 • 메시지 • 생성된 객체들 사이의 상호관계를 정의한 것이 메시지이다. • 메시지를 통하여 객체에 일을 시킨다. • 메시지는 객체 이름, 메소드 이름, 메소드 수행에 필요한 인자(argument)를 포함한다. • 다형성 • 다형성은 다양한 변신을 의미하는 개념이다. • 다형성은 “서로 다른 객체가 동일한 메시지에 대하여 서로 다른 방법으로 응답할 수 있는 기능”을 의미한다.

  35. 5장. 객체지향 개념 수고하셨습니다. 질문 있습니까?

More Related