PowerPoint 프레젠테이션

Similar documents
JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

PowerPoint Presentation

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

PowerPoint Presentation

Microsoft PowerPoint - 2강

PowerPoint 프레젠테이션

PowerPoint Presentation

Design Issues

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

PowerPoint Presentation

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

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

PowerPoint Presentation

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

JAVA PROGRAMMING 실습 02. 표준 입출력

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

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µå

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

예제 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

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

PowerPoint 프레젠테이션

제11장 프로세스와 쓰레드

Microsoft PowerPoint - Lect04.pptx

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

오버라이딩 (Overriding)

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

JVM 메모리구조

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

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

Microsoft PowerPoint - Chap12-OOP.ppt

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 07. 상속

PowerPoint Presentation

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

ThisJava ..

PowerPoint 프레젠테이션

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - Java7.pptx

Network Programming

No Slide Title

PowerPoint Presentation

JAVA PROGRAMMING 실습 09. 예외처리

Microsoft PowerPoint - Chapter 6.ppt

설계란 무엇인가?

Microsoft PowerPoint 장강의노트.ppt

쉽게 풀어쓴 C 프로그래밍

5장.key

슬라이드 1

C++ Programming

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

Microsoft PowerPoint - java2 [호환 모드]

PowerPoint Presentation

슬라이드 1

PowerPoint Presentation

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

쉽게 풀어쓴 C 프로그래밍

Spring Boot

교육자료

PowerPoint Presentation

Microsoft PowerPoint - chap11

4장.문장

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 02. 표준 입출력

슬라이드 1

PowerPoint Presentation

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

PowerPoint Presentation

슬라이드 1

No Slide Title

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

A Tour of Java V

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

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

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

PowerPoint Presentation

PowerPoint Presentation

Cluster management software

쉽게 풀어쓴 C 프로그래밍

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

Microsoft Word - EEL2 Lab4.docx

강의계획서 1. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 3 학점교 강사명교 강사전화번호 강의시간 4시간강의실수강대상 2. 교과목학습목표 4차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌

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

PowerPoint Presentation

Microsoft PowerPoint - C++ 5 .pptx

17장 클래스와 메소드

Transcription:

인터페이스 배효철 th1g@nate.com 1

목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2

인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음 ( 다형성 ) 3

인터페이스의역할 4

인터페이스선언 인터페이스선언 인터페이스이름 - 자바식별자작성규칙에따라작성 소스파일생성 인터페이스이름과대소문자가동일한소스파일생성 인터페이스선언 5

인터페이스선언 인터페이스선언 인터페이스의구성멤버 6

인터페이스선언 상수필드선언 인터페이스는상수필드만선언가능 데이터저장하지않음 인터페이스에선언된필드는모두 public static final 자동적으로컴파일과정에서붙음 상수명은대문자로작성 서로다른단어로구성되어있을경우에는언더바 (_) 로연결 선언과동시에초기값지정 static { 블록작성불가 - static { 으로초기화불가 7

인터페이스선언 추상메소드선언 인터페이스통해호출된메소드는최종적으로객체에서실행 인터페이스의메소드는기본적으로실행블록이없는추상메소드로선언 public abstract 를생략하더라도자동적으로컴파일과정에서붙게됨 추상메소드 ( 메소드선언부 ) ( 호출방법만기술 ) 재정의된메소드 ( 실제실행메소드 ) 8

인터페이스선언 디폴트메소드선언 자바 8 에서추가된인터페이스의새로운멤버 실행블록을가지고있는메소드 default 키워드를반드시붙여야 기본적으로 public 접근제한 생략하더라도컴파일과정에서자동붙음 9

인터페이스선언 정적메소드선언 자바 8 에서추가된인터페이스의새로운멤버 10

인터페이스구현 구현객체와구현클래스 인터페이스의추상메소드대한실체메소드를가진객체 = 구현객체 구현객체 구현객체를생성하는클래스 = 구현클래스 11

인터페이스구현 구현클래스선언 자신의객체가인터페이스타입으로사용할수있음 implements 키워드로명시 추상메소드의실체메소드를작성하는방법 메소드의선언부가정확히일치해야 인터페이스의모든추상메소드를재정의하는실체메소드작성해야 일부만재정의할경우, 추상클래스로선언 + abstract 키워드붙임 12

인터페이스구현 익명구현객체 명시적인구현클래스작성생략하고바로구현객체를얻는방법 이름없는구현클래스선언과동시에객체생성 인터페이스의추상메소드들을모두재정의하는실체메소드가있어야 추가적으로필드와메소드선언가능하나익명객체안에서만사용 인터페이스변수로접근불가 13

인터페이스구현 다중인터페이스구현클래스 14

인터페이스구현 15

인터페이스사용 인터페이스에구현객체를대입하는방법 16

인터페이스사용 추상메소드사용 17

인터페이스구현 interface OpenCloseIf { public void open(); public void close(); interface PaintIf { public void Red(); public void Blue(); class Door implements OpenCloseIf, PaintIf { @Overridepublic void open() { System.out.println("Door Open"); @Override public void close() { System.out.println("Door Close"); @Override public void Red() { System.out.println("Paint the door red"); @Override public void Blue() { System.out.println("Paint the door blue"); 18

class Bottle implements OpenCloseIf { @Override public void open() { System.out.println("Bottle Open"); @Override public void close() { System.out.println("Bottle Close"); public class test { public static void main(string[] args) { Door door = new Door(); door.open(); door.close(); door.red(); door.blue(); Bottle bottle = new Bottle(); bottle.open(); bottle.close(); 19

인터페이스사용 디폴트메소드사용 인터페이스만으로는사용불가 구현객체가인터페이스에대입되어야호출할수있는인스턴스메소드 모든구현객체가가지고있는기본메소드로사용 필요에따라구현클래스가디폴트메소드재정의해사용 정적메소드사용 인터페이스로바로호출가능 20

인터페이스사용 interface Parent{ public abstract void run(); public default void setstate(boolean state){ if(state){ System.out.println(" 현재상태는정상입니다 "); else { System.out.println(" 현재상태는비정상입니다 "); public class Child implements Parent { public void run() { public void setstate(boolean state) { 21

인터페이스사용 interface Parent{ public abstract void run(); public default void setstate(boolean state){ if(state){ System.out.println(" 현재상태는정상입니다 "); else { System.out.println(" 현재상태는비정상입니다 "); public static void change() { System.out.println( 상태를변경합니다. ); 22

타입변환과다형성 다형성 하나의타입에여러가지객체대입해다양한실행결과를얻는것 다형성을구현하는기술 상속또는인터페이스의자동타입변환 (Promotion) 오버라이딩 (Overriding) 다형성의효과 다양한실행결과를얻을수있음 객체를부품화시킬수있어유지보수용이 ( 메소드의매개변수로사용 ) 23

타입변환과다형성 자동타입변환 (Promotion) 24

타입변환과다형성 필드의다형성 25

타입변환과다형성 인터페이스배열로구현한객체관리 26

타입변환과다형성 매개변수의다형성 매개변수의타입이인터페이스인경우 어떠한구현객체도매개값으로사용가능 구현객체에따라메소드실행결과달라짐 강제타입변환 (Casting) 인터페이스타입으로자동타입변환후, 구현클래스타입으로변환 필요성 : 구현클래스타입에선언된다른멤버사용하기위해 객체타입확인 (instanceof 연산자 ) 강제타입변환전구현클래스타입조사 27

인터페이스상속 인터페이스간상속가능 하위인터페이스구현클래스는아래추상메소드를모두재정의해야 하위인터페이스의추상메소드 상위인터페이스1의추상메소드 상위인터페이스2의추상메소드 인터페이스자동타입변환 해당타입의인터페이스에선언된메소드만호출가능 28

디폴트메소드와인터페이스확장 디폴트메소드와확장메소드사용하기 29

디폴트메소드와인터페이스확장 디폴트메소드가있는인터페이스상속 부모인터페이스의디폴트메소드를자식인터페이스에서활용방법 디폴트메소드를단순히상속만받음 디폴트메소드를재정의 (Override) 해서실행내용을변경 디폴트메소드를추상메소드로재선언 30

클래스비교 31