객체를 대상으로한 대입 연산자는 어떤 기능을 하나요?

조회수 1047회

바로 본론으로 들어가겠습니다. 예를 들어

class alpha{
   //이하생략
        .
        .
        .    
}

이라는 코드가 있고

public void main(String[] args){
    alpha temp1 = new alpha(적당한값);
    alpa temp2 = temp2;
}

라는 코드가 있다면 temp1과 temp2는 메모리상으로 동일한 객체를 가르키게 되나요? 아니면 단지 같은 값을 가지는 두개의 객체가 되나요?

후....원래는 C언어를 주로 파다가 JAVA로 넘어오니 적응안되는게 여러가지 있네요.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 동일한 객체를 가리킵니다.

    쉽게 생각하면 됩니다. 자바에서 new 연산자를 사용한 것은 모두 heap 에 생성합니다. c에서 malloc 를 사용했다고 생각하면 됩니다.

    클래스 객체명; 이런 선언은 레퍼런스이고 c에서는 그나마 제일 가까운 것이 포인터일 것 같습니다.

    즉 질문에서 코드가 이상한데...

    alpha temp1 = new alpha(적당한값);
    alpha temp2 = temp1;
    

    일 때 temp1 과 temp2 는 같은 객체를 가리킵니다.

    • ㅎㅎ잠결에 작성하다보니 오타가 있었군요, 제가 원하던 완벽한 대답입니다! 감사합니다. 알 수 없는 사용자 2019.12.28 22:08

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)