Presentation is loading. Please wait.

Presentation is loading. Please wait.

Inheritance and Polymorphism 2009. 03. 16 UIC Laboratory 황 우 연.

Similar presentations


Presentation on theme: "Inheritance and Polymorphism 2009. 03. 16 UIC Laboratory 황 우 연."— Presentation transcript:

1 Inheritance and Polymorphism 2009. 03. 16 UIC Laboratory 황 우 연

2 Goals  IDE Tool 사용으로 얻을 수 있는 장점 이해  Java Platform & Eclipse 설치 및 활용  객체지향에서의 상속과 다형성 개념을 코드 화할 수 있는 지식 습득  예제 및 과제를 통한 코드 구현

3 IDE  Integrated Development Environment 코딩, 디버그, 컴파일 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공 종래의 소프트웨어 개발에서는 컴파일러, 텍스트 편집기, 디버거 등을 따로 사용하였음 이러한 프로그램들을 하나로 묶어 대화형 인터페이스를 제공한 것이 통합 개발 환경임  IDE 의 예 Microsoft - Visual Studio Borland - Developer Studio Codegear - Jbuilder Eclipse Foundation - Eclipse

4 Eclipse 의 특징 및 주요 기능  자바 프로그래밍 개발이 용이하며, 플러그 인을 통해 C/C++, PHP, HTML 등 여러 언어 의 개발이 가능  자바 기반으로 VM 위에서 어떤 플랫폼에서 든 실행 가능  다양한 플러그인을 통한 확장 지원  자바에 대해 강력한 리팩토링 기능을 제공  현재 (2009. 03) 최신 버전 : 3.4.2

5 Eclipse 를 사용하는데 필요한 S/W  Java Platform Eclipse 사용을 위해서는 Java 실행환경이 필요 Sun 사에 의해 각 운영체제별 JDK 가 제공되고 있음 Java2 Standard Edition 1.4.2 버전 이상의 Java Platform 이 필요함 최신 버전의 J2SE Download: http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/- /USD/VerifyItem-Start/jdk-6u12-windows-i586- p.exe?BundledLineItemUUID=FTRIBe.oiNcAAAEfh1AhW_l8&OrderID=61lIBe.oVZgAAAEffFAhW_l8& ProductID=ZsNIBe.pM7cAAAEexzlTv_an&FileName=/jdk-6u12-windows-i586-p.exe http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/- /USD/VerifyItem-Start/jdk-6u12-windows-i586- p.exe?BundledLineItemUUID=FTRIBe.oiNcAAAEfh1AhW_l8&OrderID=61lIBe.oVZgAAAEffFAhW_l8& ProductID=ZsNIBe.pM7cAAAEexzlTv_an&FileName=/jdk-6u12-windows-i586-p.exe

6 Java 환경변수 설정  J2SE 설치 후

7 Java 환경변수 설정  시스템 변수에 아래 값들을 추가 Path, Java_Home  c:\Program Files\Java\jdk1.6.0_11\bin; Classpath .;C:\Program Files\Java\jdk1.6.0_11\SRC.ZIP; C:\Program Files\Java\jdk1.6.0_11\lib;

8 Eclipse 설치  http://www.eclipse.org/downloads http://www.eclipse.org/downloads

9 Eclipse 설치  압축 해제 후 eclipse.exe 파일 실행

10 Eclipse 실행  Workspace 각각의 개발 환경에서 작성되는 프로젝트마다 ‘project’ 라는 형태로 파일을 관리하는 것 각 프로젝트마다 완성된 프로젝트가 다르면 취급하는 파 일 등도 완전히 다른 곳으로 나누어져 관리되도록 함 프로젝트들을 관리하는 일종의 폴더

11 Eclipse 실행 Tool bar Perspective and Fast View bar Resource Navigator view Menu bar Message area Editor Status area Text editor

12 프로젝트 생성  [File] → [New] → [Java Project]  Project name: 20090316 입력 후 [Finish] 버튼 클릭

13 패키지 생성

14 클래스 생성

15 소스코드 편집

16 Inheritance  무엇인가를 상위에서 하위로 전달하여 주는 개념  객체지향 프로그래밍에서 코드의 재사용성 과 간결성을 제공  Super(Parent) Class 상속 관계에서 기존의 클래스를 지칭  Sub(Child) Class 슈퍼클래스를 확장하여 새롭게 정의한 클래스 슈퍼클래스의 속성 및 기능들을 전부 물려받음

17 Inheritance 의 사용 형식  자바에서는 클래스를 상속받기 위해서 extends 라는 키워드를 사용  상속받은 클래스는 슈퍼클래스의 pubilc, protected, default 형식을 갖는 모든 멤버를 상속받음  아래와 같은 계층 구조로 클래스가 구성되어 있을 때 다음과 같이 선언 Public class B extends A {...... }

18 Example1. 멤버 변수의 상속

19  실행결과 클래스 C 의 객체 num 은 클래스 A, B 의 특성을 상속받았기 때문에 클래스 A,B 에 있는 모든 멤 버 사용 가능 num 을 사용하여 멤버 변수 c 는 물론이고, 상속 받은 a, b 도 처리 가능

20 Example2. Method 의 상속

21  실행결과 객체 uic 를 사용해 show() method 에는 접근할 수 없음  에러가 난 부분을 삭제 후 재실행한 결과

22 Polymorphism  “One interface, Multiple implementation” 하나의 인터페이스를 이용해서 다양한 구현을 제공  하나의 객체에 여러 가지 기능을 포함시켜 효율성을 높일 수 있음  자바에서는 다형성 구현을 위해 Overloading, Overriding, Interface 등의 방 법을 제공

23 Overriding vs Overloading  Overriding( 재정의 ) 상속 관계에 있는 슈퍼클래스와 서브클래스에서 같은 이 름의 method 를 정의하는 것  Overloading( 다중 정의 ) 같은 클래스 안에서 이름이 같은 method 를 두개 이상 정 의하는 것

24 Example3. Method Overriding  실행결과

25 Example4. Method Overriding

26  실행결과 슈퍼클래스에 있는 talk() method 를 상속받은 서브클 래스들에서 재정의 똑같은 talk() 라도 그 객체 에 따라 다른 기능을 수행

27 Exercises  코드 작성방법 println 문을 이용하여 첫줄에 학번, 성명 출력 작성한 소스코드 파일을 홈페이지의 과제제출 게 시판에 업로드 결과물의 소스코드 파일 (*.java) 이 여러 개일 경 우, 하나의 파일로 압축후 업로드  압축파일명 : “ 학번 _ 성명.zip”  제출마감 2009.03.30 오전까지

28 Exercise 1.  실습 보충자료 (hwp) 파일 내 미완성 코드를 사용하여 상속과 재정의를 구현 p.2 ( 상속 ) p.4 ( 재정의 )  상속과 재정의 결과를 println 문을 이용하여 화면으로 출력

29 Shape name // 도형이름 public point // 점의 개수 private GetPoint() // 점의 개수 구하기 SetPoint() // 점수 개수 설정 Draw() // 도형 그리기 GetRim() // 둘레 구하기 GetArea() // 넓이 구하기 Rectangle width // 밑변 height // 높이 Set…(), Get…() TriangleCircle Square Exercise 2.


Download ppt "Inheritance and Polymorphism 2009. 03. 16 UIC Laboratory 황 우 연."

Similar presentations


Ads by Google