안드로이드(자바)에서 객체의 전달..?참조..?
조회수 2477회
음...
제가 지금 안드로이드를 공부 중인데 헷갈리는 것이 있어서 질문드려요
상황? 을 설명드리자면
Class mainActivity extends Activity {
A a = new A(this);
}
Class A{
Activity activity;
B b;
public A( Activity activity){
this.activity = activity;
}
b = new B(activity);
}
Class B{
Activity activity;
public B( Activity activity){
this.activity = activity;
}
이러한 상태라고 할 때, a객체의 activity 변수와 b객체의 activity 변수는 같은 객체를 가리키나요?
엄..... 데이터의 일반형(int,float,char 등)이 아닌 클래스의 객체(여기서 a,b)는 주소값을 가지고 있고 그 주소값이 해당 객체의 주소라고 알고 있는데, mainActivity에서 this로 자기 자신을 넘겼으니, mainActivity, a, b는 결국 같은 것인가요?
만약 같다면 용량은 mainActivity 클래스의 크기 * 3 이 아닌 mainActivity 하나의 용량만 차지하나요?
설명을 어찌해야 될지 몰라서 굉장히 복잡하네요 ㅠ
----------------------이해를 위해 그림 추가합니다 -----------------------------------------
여기서 오른쪽과 왼쪽 중 어떤 것이 맞는지 이걸 모르겠네요...
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
자바 언어의 변수 참조 문제를 질문한 것으로 이해됩니다.
자바는 원시(Primitive) 타입인 int,char,...(소문자)를 제외하고는 모두 참조형입니다. 참조형은 실제 객체가 저장된 메모리를 가리키는 것임으로 이해하고 계신것이 맞습니다.
그림에서는 왼쪽과 같은 형태가 되겠네요.
댓글 입력