과부하 (다시로드 선택 방법) :
Java는 클래스의 여러 메소드가 동일한 이름을 갖도록 허용하지만, 다른 매개 변수가 포함되어야합니다 , 컴파일 타임 오류는 매개 변수와 일치하거나 여러 가지 가능한 일치를 찾지 않고 발생합니다.
과부하 포함 : 일반 방법의 과부하 및 생성자 방법의 과부하
방법 : 즉, 함수 (텍스트 "방법"에서 집합 적으로 호출하는 함수는 고정 된 프로그램 세그먼트 또는 서브 루틴으로 고정 된 작업 기능을 실현할 수 있습니다. 또한, 출구는이 항목에 의해 가져온 다양한 매개 변수를 의미합니다. 출구로 호출되면 프로그램 블록이 실행 된 후 리턴 값이 반환 값을 의미합니다.
일반적으로 클래스는 여러 개의 과부하 메소드를 가질 수 있으며 클래스의 다른 과부하 방법은 다른 요구에 따라 설계 될 수 있습니다. 그중에서도 매개 변수, 유형 및 다른 유형의 매개 변수 순서조차도 동일한 방법에 대해 과부하가 다릅니다. 예를 들어, 그림과 같이, 우리가 자주 보는 문자열 클래스는 일반적인 예입니다.
추신 :이 예는 또한 지난번에 경험을 공유했을 때 내가 저지른 말도 안되는 실수를 수정하고 있습니다. 제목을 다시 확인하십시오. 그것은 정확하고 과부하이며 다시 쓰여지지 않습니다.
방법/단계
먼저, 완전한 예를 작성해 봅시다. 이것은 그림과 같이 가장 원시적 인 방법입니다. 우리는 향후 각 단계를 계속 배우고이 방법 레이어를 레이어별로 다시로드 할 것입니다.
1. 처음에 액세스 수정자가 오늘의 논의에 영향을 미치는지 논의 해 봅시다. 즉, 다른 방법을 구성하는 데 필요한 조건이 아닙니다. Layman의 용어에 따르면, 방법의 차이는 액세스 수정자가 일관되는지 여부와 관련이 없습니다. 그림과 같이, 액세스 수정자가 일치하지 않고 매개 변수가 동일하지 않거나 (또는 그 중 어느 것도 매개 변수가 없음), Java 기본값은 동일한 방법으로 기본적으로 변하지 않으므로 컴파일을 전달할 수없고 오류 가보고됩니다.
2. 액세스 수정자를 제외한 후, 반환 값의 차이가 다른 과부하의 다른 방법 일 수 있는지 논의하겠습니다. 유형. 마지막으로, 리턴 값은 그림과 같이 과부하 메소드에 필요한 조건이 아니라는 것을 증명합니다.
3. 다음에 유일한 차이점은 매개 변수입니다. 상황에 따라 연습합시다. 첫 번째 매개 변수는 다른 매개 변수입니다.
4. 세 번째 단계에서는 다른 매개 변수에 대해 이야기하고 있습니다. 그림과 같이 매개 변수 유형은 동일하며 정수 유형이지만 공식 매개 변수의 이름은 다르므로 컴파일을 전달할 수 없습니다.
또한, 다른 매개 변수로 인한 과부하. 그림과 같이 다른 예제 1 파라미터리스 메소드, 1 int 매개 변수 메소드 및 2 개의 int 매개 변수 메소드를 작성할 수 있습니다.
6.이 시점에서 우리는 키 링크에 도달했습니다. 다른 유형의 다른 과부하가 있습니까? 일부! 매개 변수가 다르고 숫자가 동일하다고 상상해보십시오. 예! 올바르게 추측했습니다! 주문은 다릅니다! 다른 순서에서는 여전히 다른 방법이 있으며,이 방법은 과부하도 가능합니다. 그림과 같이 :
다음은 또 다른 간단한 예입니다
int sum (int m, int n) {return m +n;} int sum (int m, int n, int k) {return m +n +k;} double sum (double m, double n) {return m + n;} 이중 합 (double m, double n, double k) {return m+n+k;} 주요 구현은 과부하 된 메소드 합계이며, 여기에는 다음과 같은 의미가 있습니다.
합 (m, n) : 정수 m과 n의 합을 찾으십시오.
합 (m, n, k) : 정수 m, n 및 k의 합을 찾으십시오.
sum (m, n) : 실수 m과 n의 합을 찾으십시오.
합 (m, n, k) : 실수의 합을 찾으십시오. m, n 및 k.
마지막으로, 오버로드는 매개 변수가 있지만 매개 변수, 매개 변수 유형, 다른 매개 변수 수 및 다른 유형의 다른 매개 변수 순서가없는 매개 변수와 관련이 있다고 요약하겠습니다.