강의

멘토링

로드맵

Inflearn brand logo image

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

메리님의 프로필 이미지
메리

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

정적 변수, 정적 메서드 (static) v2

32. 정적 변수, 정적 메서드 (static) v2

해결된 질문

작성

·

26

0

31:30 구간 강의부분에서

max나 parseInt 같은 메서드들도 정적 메서드라고 하셨는데 그러면 보통 흔하게 나오는 println이나 print 메서드도 정적 메서드인가요?

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

메서드이긴한데 스태틱은 아닙니다.

out 자체가 이미 생성된 객체입니다.

 

println은 out이라는 객체(PrintStream 인스턴스)에 정의된 메서드입니다.


우리가 흔히 쓰는 System.out.println("Hello")는 “out 객체에게 println을 호출하라”는 뜻이지, PrintStream.println(...)을 클래스 이름으로 직접 부르는 정적 호출이 아닙니다.

 

클래스는 보통 대문자로 시작하기 때문에 앞에 단어를 보면 대략적으로 추측할 수 있습니다.

0

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

Java에서 이해하기 어려운 정적 메서드에 관한 부분에 대한 질문을 주셨네요. maxparseInt 같은 메서드는 클래스에 귀속되어 클래스 이름을 통해 직접 호출할 수 있는 정적 메서드입니다. 이는 Math.max() 또는 Integer.parseInt()로 작성된 코드를 통해 확인할 수 있습니다. 이러한 메서드는 객체의 상태에 의존하지 않기 때문에 클래스로부터 직접 호출 가능합니다.

반면에 println이나 print 메서드는 System.out이라는 PrintStream 객체의 인스턴스 메서드입니다. System.outPrintStream의 정적 필드로, 이 객체를 통해 println() 같은 메서드를 호출하게 됩니다. 따라서 printlnprint는 정적 메서드가 아닙니다. 대신, 이러한 메서드는 특정 객체(System.out)를 통한 인스턴스 메서드 호출로 분류됩니다.

다음 링크들을 통해 관련된 질문과 설명을 더 참고하실 수 있습니다:

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

메리님의 프로필 이미지
메리

작성한 질문수

질문하기