[Java]/Program source (java)

097 Review - Java 오브젝트 : clone() 메소드와, println 내부에서의 업 캐스팅 처리

Jelly-fish 2023. 9. 15. 15:05
public class Test097
{
	public static void main(String[] args)
	{
		int[] nums = {10, 20, 30, 40, 50};		//-- 배열 원본
		
		int[] copys1 = nums;					//-- 얕은 의미의 배열 복사 수행
												//-- (주소값 복사)

		int[] copys2 = copyArray(nums);			//-- 깊은 의미의 배열 복사 수행
												//-- (사용자 정의 메소드 호출 → 데이터 복사)

		
		// ◎(반환되는 데이터 타입 : 오브젝트(object) → int배열 타입으로 변경)
		int[] copys3 = (int[])nums.clone();		//-- 깊은 의미의 배열 복사 수행
		//                    ------------ Object!!!
		//             -------
		//            하위 클래스(int형 배열)
		//          
		//           → 『 다운 캐스팅 된 형태이다!! 』

												//-- (자바 제공 → clone() 메소드)
		
		//    (배열 int[]은 자식 클래스) 【nums는 객체이므로 Object 타입】
		//    Object는 모든 타입들을 보유하고 있음...!! → 최상위 조상이므로
		//    배열이 업캐스팅 된 상태로 Object 형태로 변환했기 때문에 다운 캐스팅이 가능한 것이다!

		//    Object보다 상위 객체는 없기 때문에, Object 앞에 타입을 변환하는 명시적 형변환은
		//    모두 다운 캐스팅이다.

		// class 배열 extends Object
		//{		
		//		/* Object 가 물려준 clone()
		//		...
		//      Object clone()
		//		{
		//			
		//		}
		//		*/
		//}