>  기사  >  Java  >  참조에 의한 Java 호출

참조에 의한 Java 호출

王林
王林원래의
2024-08-30 15:34:06688검색

Java의 참조에 의한 호출 정의는 매개변수를 참조로 사용한다는 것을 의미합니다. 이를 사용할 함수에 인수 참조를 매개변수로 보냅니다. 우리는 두 인수를 모두 실제 매개변수와 형식 매개변수로 제공합니다. 이는 정확한 위치를 나타냅니다. 이는 특정 기능이 변경될 때마다 프로세스가 호출될 때 이러한 변경 사항이 실제 매개변수에 반영된다는 것을 의미합니다. 명시적으로 지정하거나 호출할 필요가 없습니다. 변수의 주소가 전송됩니다. 이는 실제 변수가 함수를 호출하고 있음을 의미합니다.

광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문

다음은 Java에서 참조에 의한 호출을 구현할 수 있는 방법입니다.

void function_name(datatype1, datatype2); //Function declaration
int main()
{
Datatype declaration;
Function Call(datatype1, datatype2);
}
Function_name ()
{
// Function definition
}

설명: 위 구문은 먼저 함수를 선언합니다. C와 달리 Java에서는 특정 주소에서 변수를 가져오는 특정 조항이 없습니다. Java는 참조 변수도 전달하는 값별 호출을 사용합니다.

Java에서 참조별 호출은 어떻게 작동하나요?

Call by reference의 기본 기능은 변수의 주소를 참조하는 것입니다. 따라서 변수의 주소에 변경 사항이 있으면 이를 사용하는 함수가 호출될 때마다 반영됩니다. 아래 코드는 이 기능을 더 잘 이해하는 데 도움이 됩니다.

코드:

Void inc(int );
Public static voidmain(string args[]) {
int a = 10;
System.out.println("Before function was called the Value of a = ", a);
void inc();
System.out.println("After function is called Value of a = ", a);
}
Void inc(intx) {
int x = x + 1;
}

여기서는 변수를 사용하여 inc 함수를 선언했습니다. 그런 다음 변수를 선언했습니다. 변수는 정의된 값을 갖습니다. 하지만 계속 진행하면서 'inc' 함수를 호출합니다. 'inc' 함수가 호출되며, 호출될 때마다 변수 'a'의 위치를 ​​가리킵니다. 참조 변수의 복사본을 생성하고 값이 있으면 사용된 메서드에 전달됩니다. 이 참조는 변수 'a'의 주소를 가리킵니다. 이 값이 증가하고 함수가 호출되면 이 주소에서 값을 가져옵니다. 이 경우 inc 함수는 값을 1씩 증가시키므로 11이 됩니다. 값은 메인에 인쇄됩니다. 참조 변수의 복사본을 만들 수도 있습니다. 참조용으로 새 객체나 변수를 생성하더라도 기본 주소는 동일하게 유지되므로 영향을 받지 않습니다.

참조로 Java 호출을 구현하는 예

이에 대한 몇 가지 예를 더 확인해 보면 더 잘 이해할 수 있습니다.

예시 #1

Call by Reference를 사용하여 Java에서 숫자를 교환합니다. 아래 코드는 참조 호출을 사용하여 두 번호를 교환할 수 있는 예입니다.

코드:

public class EduByReference {
public static void main(String[] args) {
int num1 = 55;
int num2 = 85;
System.out.println("The values before swapping are: number1 = " + num1 + " and number2 = " + num2);
// Calling the function to swap
swapByReference(num1, num2);
System.out.println("\nThe numbers before and after swapping will be same in main:");
System.out.println("Once the swapping is done, the values will be back to original: num1 = " + num1 + " and num2 is " + num2);
}
public static void swapByReference(int num1, int num2) {
System.out.println("Before swapping in function locally, num1 = " + num1 + " num2 = " + num2);
// Swapping number1 and number2
int temp = num1;
num1 = num2;
num2 = temp;
System.out.println("After swapping in function locally, num1 = " + num1 + " num2 = " + num2);
}
}

출력:

참조에 의한 Java 호출

설명: 위 프로그램은 두 숫자를 교환합니다. 우리는 각각 값이 55와 85인 두 개의 정수 변수 a와 b를 사용했습니다. 그런 다음 swapByReference(a, b) 함수를 호출합니다. 여기 이 함수에서는 메인에서 전송된 변수를 얻습니다. 이 함수는 a와 b의 값을 취한 다음 이 두 변수의 값을 바꿉니다. 스와핑을 위해 다른 변수 'c'를 사용했습니다. 이 작업이 완료되면 이 함수는 85와 55의 값을 반환합니다. 기본적으로 값은 이전과 동일하게 유지되는 것을 볼 수 있습니다. 이는 참조별 호출을 사용하는 것입니다. 함수가 호출되면 원래 값은 그대로 저장되고, 해당 함수에 대한 값이 변경됩니다. 원래 값은 그대로 유지됩니다. 위 함수의 출력은 아래와 같습니다.

함수별 작업이 완료되면 변수의 주소로 인해 원래 값이 유지되는 것을 볼 수 있습니다. 변수의 위치는 변하지 않았습니다.

예시 #2

Java에서 참조별 호출을 사용하여 두 개의 숫자 추가:

코드:

public class EduAddByReference{
int d=50;
public void add(int d){
d=d+100;//These changes will happen locally, that means it will be reflected only in this function
System.out.println("The value in function after performing addition is " + d);
}
public static void main(String args[]){
EduAddByReference edad=new EduAddByReference();
System.out.println("before change "+edad.d);
edad.add(500);
System.out.println("after change "+edad.d);
}
}

출력:

참조에 의한 Java 호출

설명: 위 프로그램은 Java의 호출 참조의 또 다른 예입니다. 여기 메인에서는 EduAddByReference() 함수를 호출했습니다. 이 함수는 메인에서 숫자를 가져와서 추가합니다. 이 버전은 기능에서 인쇄되고 있습니다. 변수의 이 값은 이 함수에 대해 로컬로 유지됩니다. 함수 제어가 메인으로 이동하면 원래 값을 갖는 변수가 다시 인쇄됩니다. 아래 출력을 확인하면 이 프로그램이 더 잘 작동하는 데 도움이 됩니다.

결론

Java의 Call by reference는 함수를 호출하고 피연산자나 변수의 주소를 사용하여 데이터를 확인하는 것입니다. 값은 로컬에서 변경되며 함수 범위까지만 지속됩니다. 참조에 의한 호출은 원래 값을 그대로 유지하고 필요할 때마다 수정하는 데 도움이 됩니다. 변수가 일부 작업을 로컬에서 수행하기를 원할 때마다 사용할 수 있습니다. 변수의 독창성을 그대로 유지합니다.

위 내용은 참조에 의한 Java 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.