Varags
Varags를 이용하면 인자의 개수가 반드시 일치되지 않아도 호출이 가능해진다.
지정자 리턴타입 메소드명 (데이터명 … 변수명){ }
Public void sayEcho( String .. Names){ }
For each구문
값을 넘겨주는 객체의 인출이 끝나면 종료
For( String name : names );
Names의 값을 하나씩 name에 넘긴다.
public class Collection {
private static String[] str = {"A", "B", "C", "D", "E"}; --- static 정적필드 힙영역에 클래스이름.str로 저장됨
--- 힙영역에 위치해 있지만 스택영역에 있는것처럼 위치해 있다
(클래스의 다른 멤버들 보다 먼저 올림) 그래서 new가 필요 없음
--- 스택에 b.str로 저장되어 접근시 클래스 처럼 접근한 것 처럼 보인다.
(선언된 변수는 스택에 저장되고 변수가 힙영역의 객체를 불러옴)
private static String[] str2 = {"1", "2", "3"};
private static String[][] str3 = {{"A", "B", "C", "D", "E"}, {"F", "G", "H", "I", "J"}};
public static void main(String[] args) { //static 정적 메소드
output("A", "B", "C", "D");
output(str);
output(str2);
output(str3);
}
private static void output(String ... s){ -- varags기법 인자가 몇개가 넘어올지 모를때 사용
-- 몇개인지 몰라서 배열처리된다.(s가 배열 자체이다
-- 같은 데이터 타입만 받아 들일수 있다.
for (String str : s){
System.out.println(str);
}
}
private static void output(String[] ... s){
--output(str3)의 2중배열을 출력하기 위하여 String을 배열처리함
for (String[] str :s){ -- s를 str배열에 넣으면 2중 배열이 되었을것이다.
for(String str2 : str){ -- str을 str2에 하나씩 넣어서 출력
System.out.println(str2);
}
}
}
}
'프로그래밍 > Java' 카테고리의 다른 글
Data Type (0) | 2012.07.02 |
---|---|
this (0) | 2012.06.29 |
로또 실습 (0) | 2012.06.28 |
[ 자바 ] 가변배열 (0) | 2012.06.22 |
do - while 제어문 (0) | 2012.06.19 |