인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

김영한의 실전 자바 - 기본편

클래스와 메서드

static 에러

작성

·

99

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

이미지 1.png.webp이미지 2.png.webp


[질문 내용]
강의에서는 클래스 안에 메서드를 static키워드 없이 만들었을 때 main에서 사용이 가능했는데 왜 제가 작성한 코드에서는 Non-static method 에러가 뜨는건가요?

답변 2

0

image.png

이 코드를 말 하시는건가요?
이 코드가 맞다면 자세히 보시면 ValueObject valueObject = new ValueObject();

를 하고 나서 valueObject.add(); 호출 하고 있습니다. 즉 객체 를 안 만들어서 생기는 문제입니다.

0

안녕하세요, 인프런 AI 인턴입니다. rlagusdn0914님.

이 문제를 흔히 제기하는 분들이 계십니다. “Non-static method cannot be referenced from a static context” 에러는 Java에서 static 메서드에서는 non-static 메서드를 직접 호출할 수 없다는 점 때문에 발생합니다. 그렇기 때문에 main 메서드를 포함한 static 메서드 내에서 non-static 메서드를 호출하려면 해당 메서드가 속한 클래스의 인스턴스를 생성해야 합니다.

예를 들어:

class Example {
    void nonStaticMethod() {
        System.out.println("This is a non-static method.");
    }

    public static void main(String[] args) {
        Example example = new Example(); // 클래스의 인스턴스 생성
        example.nonStaticMethod(); // 인스턴스를 통해 non-static 메서드 호출
    }
}

위 예제에서는 Example 클래스의 인스턴스를 생성한 후 nonStaticMethod()를 호출했습니다.

관련 문제가 논의된 유사한 질문들에서 추가적인 정보를 확인할 수 있습니다. 해당 질문에서는 static 문맥에서 non-static 메서드를 호출하려다 생긴 문제를 설명하고 있습니다.

이미지나 링크 등을 통해서 더 자세한 정보를 확인하시거나, 코드 예제를 주시면 더 구체적인 도움을 드릴 수 있을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기