🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

인스턴스 생성에 대한 질문

24.01.07 16:18 작성 조회수 215

0

스크린샷 2024-01-07 16.15.57.pngUser 클래스를 만들었고 ShoppingCart2에서 User클래스를 활용하기 위해서 user1이라는 인스턴스를 생성하였습니다.

그리고 User클래스에 있는 메서드를 활용하기 위해서 user1.을 하니 메서드가 나타나지 않았습니다.

그 이유가 무엇때문인지 알 수 있을까요?

(메인 메서드에서는 정상적으로 나타났습니다)

답변 2

·

답변을 작성해보세요.

2

OMG님의 프로필

OMG

2024.01.08

안녕하세요. 옙버디님, 공식 서포터즈 OMG입니다.

제가 이해한 질문의 내용은 다음과 같이 ShoppingCart클래스의 필드 영역에서 OMG라는 User 인스턴스를 생성 후 필드 영역에서 함수를 호출하였을 때 메서드 참조가 안되는 것을 얘기하시는 것으로 이해하였습니다.

테스트 하신것과 같이 필드 영역에서는 메서드 호출이 불가능합니다.

하지만 5번째 줄과 같이 User()인스턴스를 생성 후 즉시 호출하여 변수를 초기화 하는 경우에는 가능합니다.

image

제가 이해한 내용이 아닌 경우 부연 설명 부탁드립니다 😀

감사합니다.

옙버디님의 프로필

옙버디

질문자

2024.01.08

현재까지 영한님의 강의를 들은 것으로 생각해보자면 클래스는 메서드 영역이고 인스턴스 생성은 메인 메서드가 인스턴스 생성을 호출해야 하기 때문에 가능한것 이라고 저는 일단 결론을 지었는데

해당 부분에서 오류가 있을까요???

 

OMG님의 프로필

OMG

2024.01.09

제가 작성한 예시 기준으로 답변드리면 이 부분은 메모리 관점보다는 자바 언어의 문법 규칙에 따른 것입니다.

 

자바에서는 메서드 호출이 메서드, 생성자 또는 초기화 블록 외부의 클래스 수준에서 허용되지 않습니다.

OMG.myName();이 메서드 내부가 아닌 클래스 수준에서 호출되고 있기 때문에 컴파일 시간 오류가 발생한 것입니다.

0

codesweaver님의 프로필

codesweaver

2024.01.08

안녕하세요. 옙버디님, 공식 서포터즈 코즈위버입니다.

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

채널톡 아이콘