-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
Integer 타입 질문입니다
23.04.22 18:20 작성 조회수 452
0
public static void main(String[] args) {
Integer a = Integer.valueOf(10);
Integer b = a;
a = 20;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
=======출력값 ========
a = 20
b = 10
이렇게 하면 값이 변경되는데 PPT에서 변경X라는 말이 무슨 말일까요 ?
답변을 작성해보세요.
0
OMG
2023.04.22
안녕하세요. hjemsti님, 공식 서포터즈 OMG입니다.
.
영한님이 강의에서 설명하는 클래스의 참조로 인한 값이 공유되는 부분을 예시로 보시면 이해에 도움이 되실거같은데요.
static class Item {
String name;
public Item(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
다음과 같은 간단한 Item클래스(Wrapper클래스도 아니고, String 클래스도 아닌)가 있을 때
Main{
Item itemA = new Item("itemA");
Item itemB = itemA;
itemA.setName("itemC");
System.out.println("itemA.name = " +itemA.getName());
System.out.println("itemB.name = " + itemB.getName());
}
결과
itemA.name = itemC
itemB.name = itemC
itemA인스턴스와 itemB인스턴스는 같은 참조를 갖게 됩니다.
하지만 Wrapper 클래스와 String 클래스도 강의에서 말씀하시듯 Class이기 때문에 b = a; 의 참조를 막을 순 없지만 직접 테스트해서 확인해보셨듯 값이 변경되지 않고 서로 다른 값을 출력하는 그 부분을 말씀하신 것으로 이해하시면 됩니다.
.
감사합니다.
답변 1