변수 매개 변수
변수 매개 변수는 여러 매개 변수를 수신 할 수있는 메소드입니다! 예를 들면 : fun (), fun (1), fun (1,1), fun (1,1,1). 이것이 메소드 과부하라고 생각할 수도 있지만 이것은 과부하가 아닙니다. 오버로드로 과부하 할 수있는 방법을 생각해보십시오. Fun () 메소드는 여러 매개 변수를 전달할 수 있습니다. 많은 방법을 과부하 할 수 있습니까?
2.1 변수 매개 변수 정의
public voidfun (int… arr) {}
위의 메소드의 매개 변수 유형은 int ..., 여기서 "..."는 타원이 아니라 매개 변수 유형을 정의하는 방법입니다. 매개 변수 ARR은 변수 매개 변수 유형입니다. 위의 코드를 공개 void fun (int [] arr)로 이해할 수 있습니다.
public int sum1 (int [] arr) {int sum = 0; for (int i = 0; i <arr.length; i ++) {sum+= arr [i]; } 반환 합계; } public int sum2 (int ... arr) {int sum = 0; for (int i = 0; i <arr.length; i ++) {sum+= arr [i]; } 반환 합계; }"int []"와 "int ..."는 다르지 않지만 "int ..."는 "int ..."가 배열 매개 변수를 정의하는 새로운 방법이라고 생각할 수도 있습니다. 그런 다음 축하해야합니다! 맞아요, 맞아요! 그러나 메소드의 공식 매개 변수에서 int [] 대신 int ... 만 사용할 수 있습니다.
2.2 변수 매개 변수가있는 호출 방법
두 가지 방법에 대한 호출 Sum1 () 및 sum2 () :
sum1 (new int [] {1,2,3}); sum2 (new int [] {1,2,3}); 이것은 차이처럼 보이지 않습니다! 그러나 Sum2를 호출하는 또 다른 방법이 있습니다.
sum2 (); sum2 (1); sum2 (1,2); sum2 (1,2,3);
이는 여러 매개 변수를 사용하여 sum2 () 메소드를 호출하는 것처럼 보이며, 이는 변수 매개 변수가있는 메소드를 호출하는 이점입니다.
2.3 컴파일러 "2 차 처리"
컴파일러의 Sum2 메소드 정의의 "보조 처리"결과는 다음과 같습니다.
public int sum2 (int [] arr) {int sum = 0; for (int i = 0; i <arr.length; i ++) {sum+= arr [i]; } 반환 합계; }즉, "int ..."를 "int []"유형으로 수정하십시오.
컴파일러가 SUM2 메소드 호출의 2 차 로딩 결과는 다음과 같습니다.
sum2 (new int [0]); sum2 (new int [] {1}); sum2 (new int [] {1, 2}); sum2 (new int [] {1, 2, 3}); 결론 : 가변 매개 변수는 실제로 배열 유형이지만 메소드를 호출 할 때 더 편리합니다. 컴파일러는 여러 실제 매개 변수를 배열에 넣고 공식 매개 변수로 전달하는 데 도움이됩니다.
2.4 변수 매개 변수 방법의 한계
l 방법은 최대 하나의 돌연변이 가능한 파라미터 만 가질 수 있습니다.
l 변수 매개 변수는 메소드의 마지막 매개 변수 여야합니다.
위의 것은 편집자가 제공 한 Java의 변수 매개 변수에 대한 간단한 내용입니다. 모든 사람에게 도움이되기를 바랍니다. Wulin.com 더 지원 ~