PowerPoint Presentation

Similar documents
PowerPoint Presentation

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

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

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - java2-lecture4.ppt [호환 모드]

Network Programming

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

ch09

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

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

Hanyang Volunteer Corps volunteer image

PowerPoint Presentation

제11장 프로세스와 쓰레드

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

Spring Boot/JDBC JdbcTemplate/CRUD 예제

gnu-lee-oop-kor-lec10-1-chap10

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

자바 프로그래밍

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - 04-UDP Programming.ppt

Design Issues

06.._ _12...._....

Microsoft PowerPoint - Lect04.pptx

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

F.

06³â_±â»ÝÀÇ»ù_10¿ùÈ£_À¥Áø

Chap12

Microsoft PowerPoint - 2강


fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

5장.key

PowerPoint Presentation

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

PowerPoint Presentation

Cluster management software

비긴쿡-자바 00앞부속

PowerPoint 프레젠테이션

PowerPoint Presentation

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

PowerPoint Presentation

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

rmi_박준용_final.PDF

Microsoft PowerPoint - 14주차 강의자료

JMF3_심빈구.PDF

쉽게 풀어쓴 C 프로그래밍

제8장 자바 GUI 프로그래밍 II

쉽게 풀어쓴 C 프로그래밍

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

PowerPoint Presentation

슬라이드 1

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

A Tour of Java V

PowerPoint Presentation

PowerPoint Presentation

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

05-class.key

오버라이딩 (Overriding)

Microsoft PowerPoint - Java7.pptx

PowerPoint Presentation

PowerPoint 프레젠테이션

C++ Programming

Microsoft PowerPoint - 06-Chapter09-Event.ppt

Spring Data JPA Many To Many 양방향 관계 예제

PowerPoint 프레젠테이션

Spring Boot

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

Java ...

스레드의우선순위 우선순위설정메소드 : void setpriority(int newpriority) newpriority 에설정할수있는등급 : 1( 가장낮은우선순위 ) 부터 10( 가장높은우선순위 ) 가장높은우선순위 : MAX_PRIORITY, 보통우선순위 : NORM_

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

<4D F736F F F696E74202D20C1A63138C0E520C0CCBAA5C6AE20C3B3B8AE28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

¼�¼úÇüÁßÇг»Áö2µµ

신림프로그래머_클린코드.key

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

PowerPoint Presentation

슬라이드 1

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

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

17장 클래스와 메소드

Microsoft Word - java18-1-final-answer.doc

Microsoft PowerPoint 장강의노트.ppt

10장.key

교육자료

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

PowerPoint 프레젠테이션

Transcription:

객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr

예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television implements RemoteControl { public void turnon() { // 실제로 TV의전원을켜기위한코드가들어간다. public void turnoff() { // 실제로 TV의전원을끄기위한코드가들어간다. 2

예제 1. 홈네트워킹 Television t = new Television(); t.turnon(); t.turnoff(); 3

예제 2. 자율주행자동차 추상메소드를가지는인터페이스와이인터페이스를구현하는클래스를작 성하여테스트해보자. 4

예제 2. 자율주행자동차 public interface OperateCar { void start(); void stop(); void setspeed(int speed); void turn(int degree); 5

예제 2. 자율주행자동차 public class AutoCar implements OperateCar { public void start() { System.out.println(" 자동차가출발합니다."); public void stop() { System.out.println(" 자동차가정지합니다."); public void setspeed(int speed) { System.out.println(" 자동차가속도를 " + speed + "km/h 로바꿉니다."); public void turn(int degree) { System.out.println(" 자동차가방향을 " + degree + " 도만큼바꿉니다."); 6

예제 2. 자율주행자동차 public class AutoCarTest { public static void main(string[] args) { OperateCar obj = new AutoCar(); obj.start(); obj.setspeed(30); obj.turn(15); obj.stop(); 7

예제 3. 객체비교하기 Comparable인터페이스를실습하여본다. 이인터페이스는우리가정의하는것이아니고표준자바라이브러리에다음과같이정의되어있다. 이인터페이스는객체와객체의크기를비교할때사용된다. 8

예제 3. 객체비교하기 public class Rectangle implements Comparable { public int width = 0; public int height = 0; @Override public String tostring() { return "Rectangle [width=" + width + ", height=" + height + "]"; public Rectangle(int w, int h) { width = w; height = h; System.out.println(this); public int getarea() { return width * height; 9

예제 3. 객체비교하기 @Override public int compareto(object other) { Rectangle otherrect = (Rectangle) other; if (this.getarea() < otherrect.getarea()) return -1; else if (this.getarea() > otherrect.getarea()) return 1; else return 0; 10

예제 3. 객체비교하기 public class RectangleTest { public static void main(string[] args) { Rectangle r1 = new Rectangle(100, 30); Rectangle r2 = new Rectangle(200, 10); int result = r1.compareto(r2); if (result == 1) System.out.println(r1 + " 가더큽니다."); else if (result == 0) System.out.println(" 같습니다 "); else System.out.println(r2 + " 가더큽니다."); 11

예제 4. 이벤트처리 예를들어서버튼을눌렀을때발생하는이벤트를처리하려면어떤공통적 인규격이있어야한다. ActionListener 인터페이스가버튼이벤트를처리할때규격을정의한다. 12

예제 4. 이벤트처리 ActionListener 는 Timer 이벤트를처리할때도사용된다. 자바에서기본제 공되는 Timer 클래스는주어진시간이되면이벤트를발생시키면서 actionperformed() 메소드를호출한다. 이점을이용하여서 1 초에한번씩 "beep" 를출력하는프로그램을작성하여보자. public interface ActionListener { void actionperformed(actionevent event); beep beep beep... 13

예제 4. 이벤트처리 class MyClass implements ActionListener { public void actionperformed(actionevent event) { System.out.println("beep"); public class CallbackTest { public static void main(string[] args) { ActionListener listener = new MyClass(); Timer t = new Timer(1000, listener); t.start(); for (int i = 0; i < 1000; i++) { try { Thread.sleep(1000); catch (InterruptedException e) { 14

예제 5. 인터페이스상속하기 인터페이스가인터페이스를상속받는것도가능하다. public interface AdvancedRemoteControl extends RemoteControl { public void volumeup(); // 가전제품의볼륨을높인다. public void volumedown();// 가전제품의볼륨을낮춘다. 15

예제 6. 자바에서의다중상속 인터페이스를이용하여가능하다. interface Drivable { void drive(); interface Flyable { void fly(); 16

예제 6. 자바에서의다중상속 public class FlyingCar1 implements Drivable, Flyable { public void drive() { System.out.println("I m driving"); public void fly() { System.out.println("I m flying"); public static void main(string args[]) { FlyingCar1 obj = new FlyingCar1(); obj.drive(); obj.fly(); I m driving I m flying 17

예제 7. 상수정의 인터페이스에는상수를정의할수있다. public interface MyConstants { int NORTH = 1; int EAST = 2; int SOUTH = 3; int WEST = 4; 18

예제 7. 상수정의 interface Days { public static final int SUNDAY = 1, MONDAY = 2, TUESDAY = 3, WEDNESDAY = 4, THURSDAY = 5, FRIDAY = 6, SATURDAY = 7; public class DayTest implements Days { public static void main(string[] args) { System.out.println(" 일요일 : + SUNDAY); 상수를공유하려면인터페이스를구현하면된다. 19

예제 8. 디폴트메소드 interface MyInterface { public void mymethod1(); default void mymethod2() { System.out.println("myMethod2()"); public class DefaultMethodTest implements MyInterface { public void mymethod1() { System.out.println("myMethod1()"); public static void main(string[] args) { DefaultMethodTest obj = new DefaultMethodTest(); obj.mymethod1(); obj.mymethod2(); mymethod1() mymethod2() 20

예제 9. 무명클래스 interface RemoteControl { void turnon(); void turnoff(); public class AnonymousClassTest { public static void main(string args[]) { RemoteControl ac = new RemoteControl() { ; public void turnon() { ac.turnon(); ac.turnoff(); System.out.println("TV turnon()"); public void turnoff() { System.out.println("TV turnoff()"); TV turnon() TV turnoff() // 무명클래스정의 21

예제 10. 타이머이벤트처리 ( 람다식 ) 앞에서 Timer 클래스를사용하여서 1 초에한번씩 beep 를출력하는프로 그램을작성한바있다. 람다식을이용하면얼마나간결해지는지를확인하 자. (p. 14 참고 ) beep beep beep... 22

예제 10. 타이머이벤트처리 ( 람다식 ) import javax.swing.timer; public class CallbackTest { public static void main(string[] args) { Timer t = new Timer(1000, event -> System.out.println("beep")); t.start(); for (int i = 0; i < 1000; i++) { try { Thread.sleep(1000); catch (InterruptedException e) { 23

예제 11. 함수인터페이스와람다식 @FunctionalInterface interface MyInterface { void sayhello(); public class LambdaTest1 { public static void main(string[] args) { MyInterface hello = () -> System.out.println("Hello Lambda!"); hello.sayhello(); Hello Lambda! 24

예제 12. 패키지생성하기 예를들어서어떤회사에서게임을개발하려면 library 팀과 game 팀의소스 를합쳐야한다고가정해보자. 25

예제 12. 패키지생성하기 프로젝트 Package2를생성한다. library 패키지를생성한다. library 패키지에 Rectangle 클래스, Circle 클래스를추가한다. game 패키지를생성한다. game 패키지에 Rectangle 클래스와 Sprite 클래스를추가한다. 26

예제 12. 패키지생성하기 27