# 리뷰: 인터페이스 ``` // 소리내기 for (Sounding item : list) { item.sound(); } ``` 이건 어떤 문법인가요? 처음보는 for문입니다 ㅜ #### CODE <a class='btn btn-default' href='/codes/25054'>Link</a> ``` import java.util.ArrayList; public class InterfaceReview { public static void main(String[] args) { // 객체 생성 Dog d = new Dog(); Baby b = new Baby(); Tiger t = new Tiger(); Robot r = new Robot(); // 인터페이스 배열 생성 ArrayList<Sounding> list = new ArrayList<Sounding>(); list.add(d); list.add(b); list.add(t); list.add(r); // 소리내기 for(int i = 0; i<list.size(); i++) { Sounding s = list.get(i); s.sound(); } } } /* 인터페이스 및 클래스를 작성하시오. */ interface Sounding { public void sound(); } class Dog implements Sounding { public void sound() { System.out.println("Dog: 멍멍!"); } } class Baby implements Sounding { public void sound() { System.out.println("Baby: 응애!"); } } class Tiger implements Sounding { public void sound() { System.out.println("Tiger: 어흥!"); } } class Robot implements Sounding { public void sound() { System.out.println("Robot: 삐빕!"); } } ``` #### INPUT ``` ``` #### OUPUT ``` Dog: 멍멍! Baby: 응애! Tiger: 어흥! Robot: 삐빕! ```
# foreach문 ## 무엇? 질문하신 구문은 향상된 for문이라 불리는 foreach문 입니다. ``` // 소리내기 - 모든 list의 요소를 차례로 순회! for (Sounding item : list) { // 차례로 꺼낸 요소를 변수 item에 연결! item.sound(); // item 변수에 연결된 객체가 sound() 메소드를 수행! } ``` ## 언제 사용? foreach문은 연속된 자료들을 순차적으로 순회 시 사용합니다. ## 무엇이 다름? 일반 for문보다 코드가 짧고 간결하여 자주 사용됩니다. ``` // 해당 배열을 모두 출력하고자 한다면? int[] scores = { 88, 96, 72, 100 }; // 일반 for문 for (int i = 0; i < scores.length; i++) { System.out.println(scores[i]); // 출력 } // foreach문 - scores의 아이템들을 차례로 순회! for (int item : scores) { // 차례로 꺼내어진 원소를 item으로 담아 반복! System.out.println(item); } ``` ## 구글링 키워드 "자바 foreach 문"으로 검색해보면, 다양한 정보를 얻을 수 있습니다!