안드로이드(자바)에서 객체의 전달..?참조..?


음...

제가 지금 안드로이드를 공부 중인데 헷갈리는 것이 있어서 질문드려요

상황? 을 설명드리자면

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 하나의 용량만 차지하나요?

설명을 어찌해야 될지 몰라서 굉장히 복잡하네요 ㅠ

----------------------이해를 위해 그림 추가합니다 -----------------------------------------

이미지 이름이나 설명을 여기에 넣어주세요.

여기서 오른쪽과 왼쪽 중 어떤 것이 맞는지 이걸 모르겠네요...


조회수 469


1 답변


좋아요
1
싫어요
채택취소하기

자바 언어의 변수 참조 문제를 질문한 것으로 이해됩니다.

자바는 원시(Primitive) 타입인 int,char,...(소문자)를 제외하고는 모두 참조형입니다. 참조형은 실제 객체가 저장된 메모리를 가리키는 것임으로 이해하고 계신것이 맞습니다.

그림에서는 왼쪽과 같은 형태가 되겠네요.

  • 2016년 06월 01일에 수정됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.
  • 2016년 03월 11일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

  • 그렇군요 감사합니다!    TuTanKhamen   2016.3.12 13:57     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close