#012 메소드(method)
이 장에서는 매개 변수와 return 값을 처리하는 방법, 메소드 시그니처(signature)를 설계하는 방법, 메소드를 문서화하는 방법에 대해서 설명한다.
매개 변수가 유효한지 검사하자
대부분의 메소드와 생성자는 자신들의 매개변수로 전달될 수 있는 값에 제한을 둔다.
예를 들면, 배열의 인덱스는 음수가 아니어야 하고 객체 참조는 null이 아니어야 한다는 것들이다.
이런 모든 제약은 명확하게 문서화해야 하며, 메소드 몸체 코드의 맨 앞에서 검사하도록 해야한다.
public 메소드의 경우는 Javadoc의 @throws 태그를 사용해서 매개 변수의 값의 제약을 위반했을 때 발생되는 예외를 문서화 한다(항목 62).
일반적으로 IllegalArgumentException, IndexOutOfBoundsException, NullPointerException 예외가 될 것이다 (항목 60).
// BigInteger.java 일부 발췌
/**
* 그 값이 (this mod m)인 BigInteger를 반환한다.
* 이 메소드는 항상 양수의 BigInteger를 반환하는
* BigInteger의 remainder 메소드와는 다르다.
*
* @param m은 계수(modulus)로서, 반드시 양수여야 한다.
* @return this mod m
* @throws ArithmeticException 만일 m이 0보다 작거나 같으면
*/
public BigInteger mod(Bi...