자바 방법의 가 변 매개 변수 유형 인 스 턴 스 분석
일반적으로 많은 자바 초보 자 들 은 아래 의 이 코드 를 볼 때 한 가지 질문 을 한다. dealArray 방법 에서 그 세 개의 작은 점 은 무엇 입 니까?
public class TestVarArgus {
public static void dealArray(int... intArray){
}
public static void main(String args[]){
}
}
이것 이 바로 본 고 에서 토론 하고 자 하 는 문제 이다. 가 변 적 인 매개 변수 유형 은 부정 확 한 매개 변수 유형 이 라 고도 부른다.영어 줄 임 말 은 varargus 입 니 다. 복원 하면 variable argument type 입 니 다.이름 을 통 해 알 수 있 듯 이 이 방법 은 인 자 를 받 을 때 개 수 는 정 해 지지 않 는 다.그럼, 지금 이 방법 을 먼저 사용 해 보 세 요.코드 와 출력 을 보십시오:
public class TestVarArgus {
public static void dealArray(int... intArray){
for (int i : intArray)
System.out.print(i +" ");
System.out.println();
}
public static void main(String args[]){
dealArray();
dealArray(1);
dealArray(1, 2, 3);
}
}
출력:
1 1 2 3
main 방법 에서 의 호출 을 통 해 이 가 변 매개 변 수 는 매개 변수 (빈 매개 변수) 가 없 을 수도 있 고 길 지 않 을 수도 있 음 을 알 수 있 습 니 다.이 부정 확 한 매개 변 수 는 사실 배열 매개 변수 와 매우 비슷 하 다 는 것 을 알 수 있 을 것 이다.사실 그런 것 도 사실이다.컴 파일 러 는 이 마지막 형 삼 을 하나의 배열 형 삼 으로 몰래 바 꾸 고 컴 파일 된 class 파일 에 기 호 를 해서 이것 이 실제 매개 변수 가 변 하 는 방법 임 을 나타 낸다.코드 를 보십시오:
dealArray(); //dealArray(int[] intArray{});
dealArray(1); //dealArray(int[] intArray{1});
dealArray(1, 2, 3); //dealArray(int[] intArray{1, 2, 3});
여기까지 말 하면 이 가 변 매개 변수 가 배열 류 매개 변수 인지 검증 해 볼 수 있 습 니 다.코드 보기:
public class TestVarArgus {
public static void dealArray(int... intArray){
for (int i : intArray)
System.out.print(i +" ");
System.out.println();
}
public static void dealArray(int[] intArray){// Duplicate method dealArray(int[]) in type TestVarArgus
for (int i : intArray)
System.out.print(i +" ");
System.out.println();
}
public static void main(String args[]){
dealArray();
dealArray(1);
dealArray(1, 2, 3);
}
}
위의 이 코드 를 통 해 알 수 있 듯 이 이 두 가지 방법 은 충돌 하여 다시 불 러 올 수 없다.여기까지 재 미 있 는 실험 을 해 보 자.
코드 1:
public class TestVarArgus {
public static void dealArray(int... intArray){
for (int i : intArray)
System.out.print(i +" ");
System.out.println();
}
public static void main(String args[]){
int[] intArray = {1, 2, 3};
dealArray(intArray); // ,
}
}
코드 2:
public class TestVarArgus {
public static void dealArray(int[] intArray){
for (int i : intArray)
System.out.print(i +" ");
System.out.println();
}
public static void main(String args[]){
dealArray(1, 2, 3); //
}
}
위의 두 단락 코드 를 통 해 알 수 있 듯 이 가 변 적 인 파 라 메 터 는 배열 류 의 파 라 메 터 를 호 환 하지만 배열 류 의 파 라 메 터 는 가 변 적 인 파 라 메 터 를 호 환 할 수 없습니다.사실 두 번 째 코드 에 있어 컴 파일 러 는 가 변 적 이지 않 은 것 이 무엇 인지 모른다. 이 를 보면 dealArray (int, int, int) 류 의 방법 을 정의 해 야 한다.따라서 배열 의 매개 변 수 를 일치 시 키 는 dealArray 방법 은 자 연 스 럽 게 사용 할 수 없습니다.
자바 방법 이 가 변 적 인 파 라 메 터 를 받 았 으 니 다음 코드 를 살 펴 보 겠 습 니 다.
public class TestVarArgus {
public static void dealArray(int count, int... intArray){
}
public static void dealArray(int... intArray, int count){// ,
}
public static void main(String args[]){
}
}
이 코드 는 가 변 매개 변수 유형 은 매개 변수 목록 의 마지막 항목 이 어야 하 며, 정 해진 매개 변수 앞 에 놓 아 서 는 안 된다 는 것 을 설명 합 니 다.아마 너 는 '우선 순위' 라 는 단 어 를 생각 할 것 이다.정확 한 설명 이 없 기 때문에 이런 규정 일 뿐 입 니 다. 여 기 는 '우선 순위' 라 는 단 어 를 빌려 이해 할 수 있 습 니 다. 아래 의 코드 를 보 세 요.
public class TestVarArgus {
public static void dealArray(int... intArray){
System.out.println("1");
}
public static void dealArray(int count, int count2){
System.out.println("2");
}
public static void main(String args[]){
dealArray(1, 2);
}
}
코드 가 붙 으 면 1 이 아니 라 출력 2 라 는 것 을 알 수 있 을 것 이다.여기 서 기억 해 야 할 것 은 길이 가 정 해 지 는 방법 과 일치 할 수 있다 면 이 방법 을 우선 일치 시 켜 야 한 다 는 것 이다.부정 확 한 파 라 메 터 를 포함 하 는 그 리 셋 방법 은 마지막 으로 선택 되 었 습 니 다.
마지막 으로 main 방법의 매개 변 수 는 하나의 배열 형식 이라는 것 을 잘 알 고 있 습 니 다. 그러면 이것 도 사실은 부정 확 한 매개 변수 유형 으로 바 꿀 수 있 습 니 다.컴 파일 오류 가 있 는 지 시험 해 보 세 요.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 학습 에 어느 정도 참고 가치 가 있다 고 믿 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.