상세 컨텐츠

본문 제목

2020-03-05 [Day-20] 자바 ( 리턴형변환)

Algorithm

by 개발성훈 2020. 3. 5. 15:50

본문

오토박싱 과 오토 언박싱

오토박싱은 일반값을 그에 맞게 타입을 바꾼다

오토언박싱은 객체값을 다시 일반타입값으로 돌려놓는다

 

저장소를 만들고 값을 저장한 후 다시 받아보는 코드 (오토박싱,언박싱 하기전) 

 

// 문제 : 저장소를 만들고 i의 값을 저장한 후 다시 받아보세요.

class Main {
	public static void main(String[] args) {
		저장소 a저장소 = new 저장소(); // 저장소를 만들었음
		a저장소.저장("안녕");//저장소에 "안녕"이라는 값을 저장함 . 박싱과 언박싱을 해야하는데 .
		String s = (String)a저장소.주세요(); //값을 받는과정에서 String으로 강제로 형변환을 한다.
		System.out.println(s); // 출력
		
		
		
		a저장소.저장(11);
		int i = (int)a저장소.주세요();
		System.out.println(i);
		
		원숭이 a원숭이 = new 원숭이();
		a저장소.저장(a원숭이);
		원숭이 b원숭이 = (원숭이)a저장소.주세요();
		b원숭이.나무타기();
	}
}

class 저장소 {

  Object data;

  void 저장(Object o) {
    this.data = o;
  }

  Object 주세요() {
    return this.data;
  }

}

class 원숭이 {
  void 나무타기() {
    System.out.println("원숭이가 나무를 탑니다.");
  }
}

 

 

저장소를 만들고 값을 저장한 후 다시 받아보는 코드 (오토박싱,언박싱 한 후)

 

// 문제 : 저장소를 만들고 i의 값을 저장한 후 다시 받아보세요.

class Main {
	public static void main(String[] args) {
		
		// 구현 시작
    저장소 a저장소 = new 저장소();

    a저장소.저장("안녕");

    String s = (String)a저장소.주세요();
    System.out.println(s);
    // 출력 : 안녕

    a저장소.저장(11);

    int i = (int)a저장소.주세요();
    System.out.println(i);
    //출력 : 11
    
    원숭이 a원숭이 = new 원숭이();
    
    a저장소.저장(a원숭이);

    원숭이 b원숭이 = (원숭이)a저장소.주세요();
    b원숭이.나무타기();
    // 출력 : 원숭이가 나무를 탑니다.
	}
}

class 저장소 {

  Object data;

  void 저장(Object o) {
    this.data = o;
  }

  Object 주세요() {
    return this.data;
  }

}

class 원숭이 {
  void 나무타기() {
    System.out.println("원숭이가 나무를 탑니다.");
  }
}

 

관련글 더보기