작성
·
53
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
헷갈리는 부분이 있어서요. 예시에 나온 Student 클래스를 예로 들면
student1 객체를 만들었을때 student1.name = "익명" 이라고한다면 name이라는 멤버변수에 접근을 해서 "익명"이라는 값을 할당하는게 실제 Student 클래스의 name에다가 해당 값을 할당하는게 아니라 Student 클래스를 바탕으로 만들어진 메모리 x001에 있는 name 변수에다가 값을 할당한다는거 같은데 제가 이해한게 맞나요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 김지협님!
김지협님의 질문은 Java에서 객체 생성 시 객체의 멤버변수가 실제 클래스 멤버변수에 할당되는지, 아니면 객체에 대한 참조에 따라 별도의 메모리 공간에 할당되는지를 묻고 있습니다. 질문하신 내용을 정리하면 다음과 같습니다.
클래스와 객체: Student
클래스 자체는 객체를 생성하기 위한 설계도에 불과하며, 실제 객체(student1
)를 생성하면 메모리상에 Student
클래스의 구조를 가지고 있는 공간이 할당됩니다.
객체의 멤버 변수: student1.name = "익명"
처럼 특정 객체의 멤버 변수에 접근하여 값을 할당할 때, 이는 Student
클래스 자체가 아닌, student1
이라는 객체에 관련된 메모리 공간 내의 변수에 값을 할당하는 것입니다.
즉, 실제로 Student
클래스의 멤버변수에 할당되는 것이 아니라, Student
클래스를 기반으로 생성된 student1
객체의 메모리 주소에서 name
이라는 변수에 접근하여 값이 할당됩니다. 이를 student1
객체의 name
멤버변수에 값이 저장된다고 이해하시면 됩니다.
참고할 만한 유사 질문 및 답변들:
김지협님이 이해하신 내용은 매우 정확합니다. 객체 지향 프로그래밍의 기본 개념을 잘 이해하고 계신 것 같습니다! 더 궁금하신 부분이 있으면 언제든지 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.