-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
인스턴스 생성에 대한 질문
24.01.07 16:18 작성 조회수 215
0
User 클래스를 만들었고 ShoppingCart2에서 User클래스를 활용하기 위해서 user1이라는 인스턴스를 생성하였습니다.
그리고 User클래스에 있는 메서드를 활용하기 위해서 user1.을 하니 메서드가 나타나지 않았습니다.
그 이유가 무엇때문인지 알 수 있을까요?
(메인 메서드에서는 정상적으로 나타났습니다)
답변을 작성해보세요.
2
![OMG님의 프로필](https://cdn.inflearn.com/public/main/profile/default_profile.png?w=48)
OMG
2024.01.08
안녕하세요. 옙버디님, 공식 서포터즈 OMG입니다.
제가 이해한 질문의 내용은 다음과 같이 ShoppingCart클래스의 필드 영역에서 OMG라는 User 인스턴스를 생성 후 필드 영역에서 함수를 호출하였을 때 메서드 참조가 안되는 것을 얘기하시는 것으로 이해하였습니다.
테스트 하신것과 같이 필드 영역에서는 메서드 호출이 불가능합니다.
하지만 5번째 줄과 같이 User()인스턴스를 생성 후 즉시 호출하여 변수를 초기화 하는 경우에는 가능합니다.
제가 이해한 내용이 아닌 경우 부연 설명 부탁드립니다 😀
감사합니다.
![옙버디님의 프로필](https://cdn.inflearn.com/public/main/profile/default_profile.png?w=48)
옙버디
질문자2024.01.08
현재까지 영한님의 강의를 들은 것으로 생각해보자면 클래스는 메서드 영역이고 인스턴스 생성은 메인 메서드가 인스턴스 생성을 호출해야 하기 때문에 가능한것 이라고 저는 일단 결론을 지었는데
해당 부분에서 오류가 있을까요???
![OMG님의 프로필](https://cdn.inflearn.com/public/main/profile/default_profile.png?w=48)
OMG
2024.01.09
제가 작성한 예시 기준으로 답변드리면 이 부분은 메모리 관점보다는 자바 언어의 문법 규칙에 따른 것입니다.
자바에서는 메서드 호출이 메서드, 생성자 또는 초기화 블록 외부의 클래스 수준에서 허용되지 않습니다.
OMG.myName();
이 메서드 내부가 아닌 클래스 수준에서 호출되고 있기 때문에 컴파일 시간 오류가 발생한 것입니다.
0
codesweaver
2024.01.08
답변 2