[자바 5 새로운 기능] 가 변 매개 변수

10315 단어 자바
가 변 매개 변수 가 무엇 입 니까?
자바 기본 내용 에서 함수 에 관 한 특성 이 있 습 니 다. 다시 불 러 오기, 만약 우리 가 여러 개의 숫자 가 추가 하고 싶 은 수 요 를 완성 하려 면 다음 코드 에 따라 완성 할 수 있 습 니 다.
public class Demo {
    public int add(int a, int b) {
        return a + b;
    }
    public int add(int a, int b, int c) {
        return a + b + c;
    }
    public static void main(String[] args) {
        int sum1 = new Demo().add(1, 2);
        int sum2 = new Demo().add(1, 2, 3);
        System.out.println("       :" + sum1 + ";       :" + sum2);
    }
}

그러나 이렇게 완성 되면 여러 가지 대응 방법 을 설정 해 야 하 는데 간결 하지 못 하 다.우 리 는 배열 의 방식 을 이용 하여 그것 을 간소화 할 수 있다.
public class Demo {
    public int add(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
    public static void main(String[] args) {
        int sum3 = new Demo().add(new int[] { 1, 2, 3, 4, 5 });
        System.out.println("       :" + sum3);
    }
}

자바 5 버 전 이후 가 변 매개 변 수 를 제공 하 는 방식 으로 완성 되 었 습 니 다. 다음 코드 는 다음 과 같 습 니 다.
public class Demo {
    public int add(int... arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
    public static void main(String[] args) {
        int sum3 = new Demo().add(new int[] { 1, 2, 3, 4, 5 });
        System.out.println("       :" + sum3);
    }
}

위의 양 끝 코드 에서 우 리 는 가 변 매개 변수 와 배열 매개 변 수 는 방법 내부 의 내용 에 아무런 변화 가 없다 는 것 을 알 수 있다.그러나 호출 에 있어 서 가 변 적 인 파 라 메 터 는 더욱 유연 해 야 한다. 예 를 들 어 다음 코드 와 같다.
public class Demo {
    public int add(int... arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
    public static void main(String[] args) {
        int sum4 = new Demo().add();
        System.out.println("       :" + sum4);
        int sum5 = new Demo().add(1);
        System.out.println("       :" + sum5);
        int sum6 = new Demo().add(1, 2, 3);
        System.out.println("       :" + sum6);
    }
}

상기 사례 코드 에서 sum 4 의 호출 은 new int [] {}, sum 5 의 호출 은 new int [] {1} 에 해당 하고 sum 6 의 호출 은 new int [] {1, 2, 3} 에 해당 합 니 다.그러나 실제 사용 시 가 변 매개 변 수 는 배열 보다 유연 하 다.
가 변 매개 변수 원리
현재 우 리 는 이미 가 변 매개 변수의 용법 을 파악 했다.실제 사용 에서 우 리 는 가 변 적 인 매개 변 수 는 배열 의 형식 과 매우 유사 하고 호출 할 때 더욱 유연 하 다 는 것 을 발견 했다.다음은 가 변 매개 변수의 원리 가 어떤 지 연구 하고 위의 가 변 매개 변수의 코드 를 역 컴 파일 한 후에 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
public class Demo
{
  public int add(int[] arr)
  {
    int sum = 0;
    for (int i = 0; i < arr.length; ++i)
      sum += arr[i];
    return sum;
  }

  public static void main(String[] args) {
    int sum4 = new Demo().add(new int[0]);
    System.out.println("       :" + sum4);
    int sum5 = new Demo().add(new int[] { 1 });
    System.out.println("       :" + sum5);
    int sum6 = new Demo().add(1, 2, 3);
    System.out.println("       :" + sum6);
  }
}

역 컴 파일 된 코드 결 과 를 본 후에 우 리 는 자바 5 버 전의 컴 파일 러 를 통 해 가 변 적 인 파 라 메 터 를 해당 하 는 배열 내용 으로 컴 파일 하여 전달 하 는 것 을 발견 했다.
가 변 매개 변수 응용
가 변 매개 변수 에 대응 하여 C 언어 와 유사 한 실제 응용 이 있 는데 문자열 포맷 이 라 고 합 니 다. 예 를 들 어 다음 코드 와 같 습 니 다.
public class Demo {
    public static void main(String[] args) {
        //         
        System.out.println("I am zhangwuji,I like games,I am 18 years old!");
        System.out.println("I am zhouzhiruo,I like music,I am 18 years old!");
    }
}

위의 코드 사례 는 가 변 적 인 파 라 메 터 를 이용 하여 다음 과 같은 형식 으로 바 꿀 수 있 습 니 다.
public class Demo {
    public static void main(String[] args) {
        //         
        String name = "zhangwuji";
        String hobby = "games";
        int age = 18;
        String format = "I am %s,I like %s,I am %d years old!";
        System.out.printf(format, name, hobby, age);
    }
}

바 텀 코드 를 보면 printf () 방법 은 가 변 적 인 파 라 메 터 를 받 아 완성 한 것 임 을 알 수 있 습 니 다.
public PrintStream printf(String format, Object ... args) {
    return format(format, args);
}

전재 설명: 작성 자 및 원문 연결 을 명시 해 주 십시오. 감사합니다!

좋은 웹페이지 즐겨찾기