본문 바로가기

프로그래밍/Java

Varags

 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