public class A {
public int aa = 0;
public static void main(String[] args) {
A a = new A();
a.aa = 1;
B b = new B(a.aa);
b.ABC();
System.out.println(a.aa);
}
}
public class B {
private int a;
public B(int a) {
this.a = a;
}
public void ABC() {
a = 3;
}
}
이소스에서 a 를 출력하면 aa는 1이 나옵니다. B클래스 값을 넘겨서 바꿔도 aa값은 바뀌지 않죠.
그런데
/////////////////////////////////////////////////////////////////////////////////////
public class A {
public List<Integer> TextOnlineColumn = new ArrayList<Integer>();
public static void main(String[] args) {
A a = new A();
a.TextOnlineColumn.add(111);
B b = new B(a.TextOnlineColumn);
b.ABC();
System.out.println(a.TextOnlineColumn.size());
}
}
public class B {
private List<Integer> TextOnlineColumn;
public B(List<Integer> TextOnlineColumn) {
this.TextOnlineColumn = TextOnlineColumn;
}
public void ABC() {
TextOnlineColumn.add(11);
TextOnlineColumn.add(11);
TextOnlineColumn.add(11);
TextOnlineColumn.add(11);
}
}
BB클래스에서 LIST값을 추가사고 a.TextOnlineColumn의 크기를 보니 5로 늘어나있습니다.
일반 변수랑 LIST는 다른건가요?
왜이런건지 설명좀 해주세요.