더북(TheBook)

이 메서드는 다음과 같이 호출한다.

int dieToss = RandomNumbers.nextInt(gen, 1, 6);


Note ≣

객체로도 정적 메서드를 호출할 수 있다. 예를 들어 LocalDate.now()를 호출해 오늘 날짜를 얻는 대신 LocalDate 클래스의 date 객체로 date.now()처럼 호출할 수 있다. 하지만 그다지 의미 있는 방법이 아니다. now 메서드는 결과를 계산할 때 date 객체를 사용하지 않는다. 대다수 자바 프로그래머는 이 방법이 볼품 없다고 생각한다.


정적 메서드는 객체에 작동하지 않으므로 인스턴스 변수에 접근할 수 없다. 그 대신 자신이 속한 클래스의 정적 변수에 접근할 수 있다. 예를 들어 RandomNumbers.nextInt 메서드는 정적 변수로 만든 난수 발생기(generator)에 접근할 수 있다.

public class RandomNumbers {

    private static Random generator = new Random();

    public static int nextInt(int low, int high) {

        return low + generator.nextInt(high - low + 1);

            // 정적 변수 generator에 접근할 수 있다.

    }

}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.