Java에서 값으로 전달 및 참조로 전달



이 블로그는 Java의 Pass by Value 및 Pass by Reference를 이해하는 데 도움이됩니다. 또한 Java가 값에 의한 전달이라고하는 이유를 예제와 함께 설명합니다.

Java는 누구나 선택할 수있는 가장 기본적인 프로그래밍 언어 중 하나입니다. 동시에 매우 간단합니다. Java를 사용하여 개발할 수있는 가능성은 무한합니다!이것이 Java를 오늘날 업계에서 가장 널리 사용되는 언어로 만드는 이유입니다.이 블로그는 다음 순서로 Java에서 값에 의한 전달 및 참조에 의한 전달에 대해 이해하는 데 도움이됩니다.

Java에서 값으로 전달 및 참조로 전달

값으로 전달 및 참조로 전달은 함수의 변수에 값을 전달할 수있는 두 가지 방법입니다.





  • 가치로 전달 : 함수 매개 변수 값이 다른 변수에 복사되고 대신 복사 된이 객체가 전달되는 프로세스입니다. 이를 Value by Call이라고합니다.

    인터페이스와 클래스의 차이
  • 참조로 통과 : 실제 참조 사본이 함수에 전달되는 프로세스입니다. 이것은 Reference에 의해 호출됩니다.



Java에 대해 이야기하면 Java는 참조로 전달되지 않고 값으로 전달된다고 말할 수 있습니다.

위로 인용 된 문장을 프로그래밍으로 설명하겠습니다.

프로그램 일러스트

수업이 있다고합시다 아래와 같습니다.



public class Car {private String color public Car () {} public Car (String a) {this.color = a} public String getColor () {return color public void setColor (String color) {this.color = color}

다음으로 두 개체를 교환하는 프로그램이 있습니다.

public class Disp {public static void main (String [] args) {Car red = new Car ( 'Red') Balloon yellow = new Balloon ( 'Yellow') swap (red, yellow) System.out.println ( 'red color = '+ red.getColor ()) System.out.println ('yellow color = '+ yellow.getColor ()) desc (yellow) System.out.println ('yellow color = '+ yellow.getColor ())} private static void desc (Car car) {// car = 100 balloon.setColor ( 'Red') // car = 100 car = new car ( 'Green') // car = 200 car.setColor ( 'Yellow') / / car = 200} // 스왑 메소드 public static void swap (Object o1, Object o2) {Object temp = o1 o1 = o2 o2 = temp}}

산출

빨간색 = 빨간색

노란색 = 노란색

노란색 = 빨간색

설명:

앞서 말씀 드렸듯이 JAVA는 Value에 의해 전달되므로 출력의 처음 두 줄에서 swap () 메서드가 작동하지 않았 음을 알 수 있습니다. 코드에 대해 자세히 설명하겠습니다.

Java에서 값으로 전달 및 참조로 전달

먼저 다음을 사용하여 클래스의 인스턴스를 만들었습니다. 새로운 운영자. 생성되고 값은 메모리 위치에 저장됩니다. 따라서이 인스턴스는 '빨간색'과 '노란색'인 개체의 메모리 위치를 가리 킵니다. 이제 새로운 개체 o1 및 o2로 값을 호출 할 때 '빨간색'과 '노란색'인 두 개체의 메모리 위치를 가리 킵니다. 따라서 스왑 메서드가 처음 호출되면 'Red'의 메모리 위치를 가리 킵니다. 다음 줄에서 Car reference는 다음 주소로 변경되고 'yellow'의 메모리 위치를 가리 킵니다. 따라서 첫 번째 단계가 아닌 두 번째 단계에서 교체됩니다. 이것이 JAVA가 참조가 아닌 가치에 의한 전달이라고하는 이유입니다.

이제 Java에서 값으로 전달 및 참조로 전달을 이해 했으므로 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 '값에 의한 전달 및 Java의 참조에 의한 전달'기사의 주석 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.