11.8 정적 메소드 (유틸리티 기능)
인터페이스에는 “구현 객체가 없어도 쓸 수 있는” static 메소드도 정의할 수 있습니다. (Java 8부터)
주로 도우미(Helper) 역할을 하는 간단한 기능들을 넣을 때 사용합니다.
💡 핵심 비유: 공구함 속의 도구
“망치나 드라이버(static method)는 굳이 건물을 짓지 않아도, 공구함(Interface)에서 바로 꺼내 쓸 수 있다.”
1. 선언과 호출
static 키워드를 붙이고, 실행 블록 {} 안에 코드를 작성합니다.
호출할 때는 인터페이스 이름으로 직접 호출합니다. (객체 생성 X)
public interface RemoteControl {
// 건전지 교환 기능 (모든 리모컨에 공통적으로 쓰이는 유틸리티)
static void changeBattery() {
System.out.println("건전지를 교환합니다.");
}
}
public class Main {
public static void main(String[] args) {
// 객체 생성 없이 바로 호출!
RemoteControl.changeBattery();
}
}
2. 주의사항
static 메소드는 인터페이스 소속이므로, 이를 구현한 클래스(Television 등)에게 상속되지 않습니다.
즉, tv.changeBattery() 처럼 객체 변수로는 호출할 수 없습니다.
반드시 RemoteControl.changeBattery() 처럼 본래의 이름을 불러줘야 합니다.
코딩 영단어 학습 📝
코딩에서 영어 단어의 의미만 정확히 이해해도 절반은 성공입니다! 오늘 배운 핵심 영단어들을 다시 한번 짚고 넘어가 볼까요?
Static Method: 스태틱 메소드, 정적 메소드. (비싼 객체(TV, 오디오)를 굳이 만들지 않아도, 인터페이스라는 빈 공구함에서 곧바로 뽑아 쓸 수 있도록 준비된 작고 유용한 공용 도구)Utility: 유틸리티, 도우미 기능. (핵심 비즈니스 로직은 아니지만, 건전지 교환이나 단위 변환처럼 개발할 때 온갖 곳에서 약방의 감초처럼 가볍게 가져다 쓰는 편리한 헬퍼 기능들)
서브목차