관리 메뉴

bright jazz music

이터레이터 사용 연습 본문

JAVA

이터레이터 사용 연습

bright jazz music 2022. 11. 1. 14:42

이곳의 예제를 참고하였다.

 

https://cloudstudying.kr/challenges/429

package com.example.demospring.testFile;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class TestUpcasting {
    public static void main(String[] args) {
        // 다양한 객체 생성
        Bird bird = new Bird();
        Helicopter copter = new Helicopter();
        Rocket rocket = new Rocket();

        // 인터페이스 타입으로 그룹화
        //1. 어레이
        Flyable[] flyableThingsArray = { bird, copter, rocket };

        //2. 리스트
        List<Flyable> flyableThingsList = new ArrayList<Flyable>();
        flyableThingsList.add(bird);
        flyableThingsList.add(copter);
        flyableThingsList.add(rocket);
        Iterator<Flyable> flyableThingsIterator = flyableThingsList.iterator();

        System.out.println("<<Array 사용>>");
        for (int i = 0; i < flyableThingsArray.length; i++) {
            Flyable temp = flyableThingsArray[i];
            temp.fly();
        }

        System.out.println("\n<<List 사용>>");
        for(Flyable flyableThing : flyableThingsList){
            flyableThing.fly();
        }

        System.out.println("\n<<Iterator 사용>>");
        while(flyableThingsIterator.hasNext()){
            Flyable flyableThing = flyableThingsIterator.next();
            flyableThing.fly();
        }
    }
}

//인터페이스
interface Flyable {
    public void fly();
}

//Bird클래스
class Bird implements Flyable {
    /* 1. fly() 메소드를 오버라이딩 하세요. */
    public void fly(){System.out.println("bird fly");}
}

//Helicopter클래스
class Helicopter implements Flyable {
    /* 2. fly() 메소드를 오버라이딩 하세요. */
    public void fly(){System.out.println("helicopter fly");}

}

//Rocket클래스
class Rocket implements Flyable {
    /* 3. fly() 메소드를 오버라이딩 하세요. */
    public void fly(){System.out.println("rocket fly");}

}

/*
<<Array 사용>>
bird fly
helicopter fly
rocket fly

<<List 사용>>
bird fly
helicopter fly
rocket fly

<<Iterator 사용>>
bird fly
helicopter fly
rocket fly

 */

 

Comments