Microsoft PowerPoint - Lect06.pptx

Similar documents
gnu-lee-oop-kor-lec06-3-chap7

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 08.다형성

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 2강

PowerPoint Presentation

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

PowerPoint Presentation

Microsoft PowerPoint - Lect04.pptx

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

No Slide Title

PowerPoint Presentation

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint Presentation

Design Issues

PowerPoint 프레젠테이션

(Microsoft PowerPoint - java2-lecture3.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint Presentation

Microsoft PowerPoint - chap11

PowerPoint Presentation

Microsoft PowerPoint - java2 [호환 모드]

PowerPoint Presentation

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

JAVA PROGRAMMING 실습 07. 상속

C++ Programming

제11장 프로세스와 쓰레드

PowerPoint Presentation

Microsoft PowerPoint - additional08.ppt [호환 모드]

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint Presentation

PowerPoint Presentation

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

JVM 메모리구조

PowerPoint Template

슬라이드 1

5장.key

설계란 무엇인가?

01-OOPConcepts(2).PDF

09-interface.key

Network Programming

1

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

Microsoft PowerPoint - C++ 5 .pptx

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

쉽게 풀어쓴 C 프로그래밍

자바 프로그래밍

17장 클래스와 메소드

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

PowerPoint 프레젠테이션

Chapter 6 Objects and Classes

쉽게

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

No Slide Title

Microsoft Word - java19-1-midterm-answer.doc

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

Slide 1

Blog

Slide 1

오버라이딩 (Overriding)

Microsoft PowerPoint - VB.NET_06.pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

쉽게 풀어쓴 C 프로그래밍

비긴쿡-자바 00앞부속

PowerPoint Template

Microsoft PowerPoint 장강의노트.ppt

슬라이드 1

PowerPoint Presentation

11장 포인터

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

제목

슬라이드 1

JAVA PROGRAMMING 실습 09. 예외처리

ThisJava ..

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

C++ Programming

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

A Tour of Java IV

Microsoft PowerPoint - java1-lecture6.ppt [호환 모드]

슬라이드 1

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - additional01.ppt [호환 모드]

C++ 기본문법 정리

Microsoft PowerPoint - 04_OOConcepts(2010).pptx

Microsoft PowerPoint - additional07.ppt [호환 모드]

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

PowerPoint Presentation

윤성우의 열혈 TCP/IP 소켓 프로그래밍

제목

JUNIT 실습및발표

소프트웨어공학개론 강의 5: 객체지향개념 최은만동국대학교컴퓨터공학과

Transcription:

OBJECT ORIENTED PROGRAMMING Object Oriented Programming 이강의록은 Power Java 저자의강의록을사용했거나재편집된것입니다. 상속, 인터페이스, 그리고다형성 상속메소드재정의 추상클래스인터페이스 상속 (inheritance) 접근지정자 다형성 상속과생성자 Object class 내부클래스무명클래스 Final class 3

상속이란? 상속의장점 상속의개념은현실세계에도존재한다. 상속의장점 상속을통하여기존클래스의필드와메소드를재사용기존클래스의일부변경도가능상속을이용하게되면복잡한 GUI 프로그램을순식간에작성 상속은이미작성된검증된소프트웨어를재사용신뢰성있는소프트웨어를손쉽게개발, 유지보수 코드의중복을줄일수있다. 5 6 상속 (inheritance) 수퍼클래스는서브클래스를포함 class Car { int speed; } class SportsCar extends Car { int turbo; } 상속한다는의미 7 8

상속의예 상속의계층구조 9 10 상속은중복을줄인다. 상속의구체적인예 상속 11 12

상속의예 상속의사용 서브클래스는수퍼클래스의필드와메소드를마치자기것처럼사용할수있다. 13 14 메소드재정의 (overriding) 메소드재정의의예 메소드재정의 (method overriding): 서브클래스가필요에따라상속된메소드를다시정의하는것 Animal 15 16

메소드를재정의하려면 중복정의 (overloading) 와재정의 (overriding) 메소드의이름, 반환형, 매개변수의개수와데이터타입이일치하여야한다. public class Animal { public void makesound() { } }; 오버라이드가아님 public class Dog extends Animal { public int makesound() { } }; 17 18 super 키워드 접근지정자 상속에서수퍼클래스의필드 / 메소드참조할때 수퍼클래스에서 subclass bl 로공용 (public), 보호 (protected), t 패키지는상속되지만전용멤버 (private) 는상속되지않는다. Sub class 에서서재정의되는메소드는접근을제한하는접근지정자를사용할수없다. 즉 protected에서 public으로할수있지만 private로지정할수없다. 수퍼클래스객체를가리킨다. 19 20

접근지정자의예 접근지정자의예 Manager Employee Manager 21 Employee 22 상속과생성자 묵시적인호출 23 24

Object 클래스 Object 의메소드 25 26 equals() 메소드 equals() 메소드 Object 의 equals() 를재정의 재정의된 equals() 호출 27 28

finalize() 메소드 hashcode() 메소드 Object class l 는 finalize() 라는콜백메소드정의. 객체가소멸되기직전에 call Sub class 에서재정의하여서자원을반납하는등의처리과정실행 hashcode() hc 에의해반환되는코드는객체의메모리주소 29 30 tostring() 종단클래스 (final) 와종단메소드 Object 클래스의 tostring() 메소드는객체의문자열표현을반환 public class Car { private String model; public Car(String model) { this.model = model; } Object 의 tostring() public String tostring() { 를재정의 return 모델 : + model; } } 키워드 final 을붙이면상속이나재정의할수없다. 재정의할수없도록한다. 31 32

추상클래스 (abstract class) 인터페이스와다형성 추상클래스 (abstract t class): l ) 몸체가구현되지않은메소드를가지고있는클래스 추상클래스는추상적인개념을표현하는데적당하다. 34 추상클래스의예 추상클래스의예 35 36

인터페이스 (interface) 인터페이스의필요성 인터페이스 (interface): 추상메소드들로만이루어진다. 인터페이스는객체와객체사이의상호작용을위한인터페이스이다. 37 38 인터페이스의예 홈네트워킹예제 홈네트워킹예제 인터페이스를구현 39 40

홈네트워킹예제 인터페이스와타입 인터페이스는하나의타입으로간주된다. Television 객체를생성하여메소드들을호출 인터페이스로참조변수를만들수있다. 41 42 다중상속 다중상속 다중상속이란여러개의수퍼클래스로부터상속하는것 자바에서는다중상속을지원하지않는다. 다중상속에는어려운문제가발생한다. 인터페이스를이용하면다중상속의효과를낼수있다. Super class interface 43 44

상수공유 다형성 (polymorphism) 이란? 동일한부모클래스에서상속된 subclass bl 의객체들을하나의타입으로취급할수있게해줌.( 서로다른타입을받아서하나의코드로처리하게함 ) 코드구조향상, 가독성증가, 확장가능한프로그램작성 상수를공유하려면인터페이스를구현하면된다. 45 46 상속과객체참조 왜그럴까? 서브클래스객체는수퍼클래스객체를포함하고있기때문이다. Shape 타입변수로 Rectangle 객체를참조하니틀린거같지만올바른문장!! Shape s = new Rectangle();// OK! s는 Rectangle 성질을다포함하지못한다. 그럼그정보는? Rectangle r = new Shape(); 는? 47 48

동적바인딩 자바의바인딩 ( 메소드호출을실제메소드의몸체와연결하는것 ) 이실행단계에서이루어짐. 실행단계에서객체의타입을보고적절한메소드를호출함. 예제 Shape의 draw() 가호출되는것이아니라 Rectangle의 draw() 가호출된다. s 의타입은 Shape 이지만 s 가실제로가리키고있는객체의타입이 Rectangle이기때문이다. 49 50 예제 예제 어떤 draw() 가호출되는가? 51 52

다형성의장점 객체의실제타입을알아내는방법 만약새로운도형클래스를작성하여추가한다고해보자. instanceof f(a instanceof B: 객체 A 가타입 B 이면 true) 연산자를사용한다. drawall() 메소드는수정할필요가없다. 53 54 메소드의매개변수 예제 Subclass 타입보다는 Shape 타입으로정의된매개변수선언 메소드의매개변수는수퍼클래스타입으로선언하는것이좋다. 메소드의매개변수로수퍼클래스참조변수를이용한다. -> 다형성을이용하는전형적인방법 55 56

형변환 내부클래스 Shape s = new Rectangle(); R t 내부클래스 (inner class): l ) 클래스안에다른클래스를정의 s 를통하여 Rectangle 클래스의필드와메소드를사용하고자할때는어떻게하여야하는가? 형변환을통해서 ((Rectangle) s).setwidth(100); 57 58 내부클래스의사용목적 예제 특정멤버변수를 private 로유지하면서자유롭게사용할수있다. 특정한곳에서만사용되는클래스들을모을수있다. 보다읽기쉽고유지보수가쉬운코드가된다. 59 60

무명클래스 (anonymous class) 일반클래스와무명클래스 무명클래스 (anonymous l class) : 클래스몸체는정의되지만이름이없는클래스 클래스정의하면객체생성 한번만사용가능 수퍼클래스에서상속받거나인터페이스를구현하여작성 필드와다른메소드정의가능. 메소드안에정의되는지역변수중에서는 final 로선언된변수만사용가능. 이름이있는클래스의경우 class TV implements RemoteControl {. } RemoteControl obj = new TV(); 무명클래스의경우 RemoteControl obj = new RemoteControl(){. }; 부모클래스이름이나인터페이스이름 61 62 무명클래스의예 Q & A 63 64