해결된 질문
작성
·
275
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
Data dataA = new Data();
dataA.value = 10;
Data dataB = dataA;
에서요 세번째줄에...
dataB는 new 선언을 안했는데 쓰일 수 있는건가요?
잘 이해가 되지 않아서요
Data dataB = new Data();
dataB = dataA; 라고 해야하는걸로 알고 있었는데
선생님 코드로 해도 잘 되서 혼란스럽네요 ㅠㅠ
답변 2
1
안녕하세요. sunstar8650님, 공식 서포터즈 y2gcoder입니다.
new 라는 지시어와 함께 사용하면 새로운 인스턴스를 생성하는 것입니다.
Data dataA = new Data();
이렇게 하면 Data 타입의 새로운 인스턴스를 생성하고 그 참조값(주소값)을 dataA라는 변수에 할당해준 것입니다.
Data dataB = dataA;
여기서는 미리 생성한 dataA를 같은 타입 변수인 dataB에 할당하고 있습니다 :) 이는 새로 객체 인스턴스를 만드는 과정이 아니라 원래 있던 인스턴스(dataA)의 참조값(주소값)을 dataB라는 변수에도 똑같이 대입해주는 과정입니다. 이를 이번 강의에 걸쳐 설명해주고 계십니다!
처음에는 이해가 가지 않더라도 천천히 강의를 복습하고, 또 다음 강의를 들어보시면 이해가 되는 부분이 있을 거라 생각합니다! 파이팅입니다!
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
sunstar8650님의 질문은 자바의 참조 변수 관련 내용으로 보입니다. 참조형 변수를 이해하는 것과 관련된 질문입니다. 관련 내용은 아래의 링크에서 확인하실 수 있습니다.
해당 질문에 대한 답변을 통해 Data dataB = dataA;
와 같이 새로운 인스턴스를 생성하지 않고 기존 인스턴스의 참조를 할당하는 것에 대해 이해할 수 있을 것 같습니다. 링크를 방문하여 자세한 답변을 확인해 보시기 바랍니다.
감사합니다!