값 또는 참조로 전달 Java 언어 차이 1 갈

Java에서는, 기준으로서 (일본어 클래스 타입 이외) 복잡한 유형은, 이후는 참조로 전달되는 것을 유지하는 오브젝트의 메소드 내의 값에서, 상기 방법으로 변형된다. 일본어 입력을 전달하는 등 INT 이중 원시 입력하는 값이다.
자바 코드 :
공용 클래스 테스트 { 

    정적 클래스 정점 { 
        공공 더블 X; 
        공공 더블 Y; 
    } 

    정적 이중 ABS (정점 V)는 { 
        Math.sqrt을 (VX * VY, VX + * VY)를 호출; 
    } 

    정적 공극 크기 (정점 V 이중 F) { 
        VX = VX * F; 
        * VY VY = F; 
    } 

    공공 정적 무효 메인 (문자열 []에 args) { 
        정점 정점 = 새로운 정점 (); 
        vertex.x = 3; 
        vertex.y = 4; 
        에서 System.out.println (ABS (정점)); // 5 

        스케일 (정점, 10); 
        에서 System.out.println (ABS (정점)); // 50 
    } 
}
 
이동에있어서의 구조는, 디폴트 값, 즉 동작의 원래 값의 복사본은 원본 값을 수정하지 않고 통과한다. A * T와받는 사람 경우, 수신자가 지정한 값을 변경할 수 있습니다. 이 방법은 종종 수신기를 수정해야하기 때문에, 수신기는 더 일반적으로받는 포인터의 비율이다.
이동 코드 :
기본 패키지 

수입 ( 
	"FMT" 
	"수학" 
) 

를 입력 정점 구조체 { 
	X, Y의 float64 
} 

FUNC (V 정점) 복근 () float64 { 
	반환 math.Sqrt (VX * VX + VY * VY) 
} 

FUNC (절 * 정점) {(float64 F) 스케일 
	VX = VX * f는 
	VY = F * VY 
} 

메인 FUNC () { 
	= 정점 {3,4} V 
	v.Scale (10) 
	fmt.Println (v.Abs ()) // 50 
}
라인 (16)을 제거한 경우 * *이 값에 의해 전달된다없이 출력값, 즉, 5, 원래 값 또는 이전의 사본 플러스 *은 원래 값을 수정한다.

추천

출처www.cnblogs.com/sxpujs/p/11941166.html