예를 들어, 저는 Car 클래스가 있고 BMW와 Benz 클래스 Car를 가지고 있습니다. 인스턴스화를 위해 우리는 새로운 변수를 선언해야합니다. 객체가클래스 변수와 클래스 인스턴스의 차이점은 무엇입니까?
Car Benz;
첫 번째 참조로 전달하고 두 번째는 값으로 전달하는 경우로 선언 어떤 경우 지금
Car BMW = new Car();
, 누구에 의해 스와핑을하고 나를 도와 드릴까요 예제를 사용하여 객체를 인스턴스화 하시겠습니까?
예를 들어, 저는 Car 클래스가 있고 BMW와 Benz 클래스 Car를 가지고 있습니다. 인스턴스화를 위해 우리는 새로운 변수를 선언해야합니다. 객체가클래스 변수와 클래스 인스턴스의 차이점은 무엇입니까?
Car Benz;
첫 번째 참조로 전달하고 두 번째는 값으로 전달하는 경우로 선언 어떤 경우 지금
Car BMW = new Car();
, 누구에 의해 스와핑을하고 나를 도와 드릴까요 예제를 사용하여 객체를 인스턴스화 하시겠습니까?
public class A{
int count = 1;
}
public class Main{
public static void main(String[] args) {
A a = new A();
A b = new A();
b.count = 2;
System.out.println("Before swap");
System.out.println("A count : "+a.count);
System.out.println("B count : "+b.count);
A c = b;
b = a;
a = c;
System.out.println("Before swap");
System.out.println("A count : "+a.count);
System.out.println("B count : "+b.count);
}
}
내가 무슨 뜻인지 이해하지 못했습니다. 주 기능에서 이와 같은 것을 교환 할 수 있습니다. 하지만 함수 'swap (a, b);와 같은 함수를 호출하여 교환하는 것이 좋겠습니다. 실제로 a를 b와 b로 만듭니다. C 및 C++에서 포인터를 검사하면 더 명확하게 알 수 있습니다. – shiva
http://www.geeksforgeeks.org/swap-exchange-objects-java/ –
@shiva 왜?어쨌든 함수의 매개 변수를 수정하면 호출 함수는 그 변경 사항을 보지 못합니다. 매개 변수 값은 해당 함수에 대해 로컬입니다. 이러한 매개 변수가 참조이고 참조 된 객체 내에서 * 변경된 경우 해당 변경 사항이 호출 함수에 반영됩니다. –
값에 의해 패스와 참조로 전달 함수/메서드에 매개 변수를 전달을 의미한다 - 분명히하시기 바랍니다 귀하의 질문 - 당신에 대해 아무것도 언급하지 않는. 우리는 두 변수를 교환하는 방법을 만들고 싶다고 추측 할 수도 있지만, 원하는 것을 알려주는 것이 좋습니다. 또한 Java는 pass-by 값만 지원합니다. – nos
당신은 ** 변수 **와 ** 객체 **의 차이점을 이해해야합니다. 마치 이것들이 똑같은 것처럼 작성하고 있습니다. 변수 *는 객체를 가리키며 객체 자체가 아닙니다. 'Car Benz;'는 변수를 초기화하지 않고 선언 만하고, 관련된 객체가 없습니다. – Jesper
@nos 좋습니다.하지만 실험을 해보았습니다. 위에서 언급 한 코드에서이 주소를 추가하십시오. 실제로 System.out.println (aDog);은 실제로 등록 된 주소를 나타내는 16 진수입니다. 즉 aDog은 실제로 메모리 위치를 나타냅니다. 나는 자바 초보자이며 사실 자바에서 o'reilly가 작성한 자바 프로그래밍을 통해 기본적으로 jave가 매개 변수를 참조로 전달한다고 설명했다. – shiva