홈 › 초급 › 06 / 8

메서드 활용 패턴 (초급)

섹션 6진행 0 / 8

6. 정리

  • 시그니처는 이름 + 매개변수 타입 목록. 반환 타입은 시그니처가 아니므로 반환 타입만 다른 오버로딩은 불가능하다.
  • 메서드 호출은 스택 프레임을 쌓고, return하면 사라진다. 그래서 자바는 항상 값 전달이다. 원시 타입은 값이, 배열/객체는 주소가 복사되어 요소 변경은 반영되고 재대입은 반영되지 않는다. String은 불변이므로 반드시 반환값을 받아야 한다.
  • 여러 값을 돌려줄 때 같은 타입이면 배열, 이름이 필요하면 record. 인자 개수가 정해지지 않았으면 가변 인자(int...)를 마지막 매개변수로 둔다.
  • 오버로딩 선택은 정확 일치·확대 변환 → 박싱 → 가변 인자 순서로 컴파일 시점에 결정된다. 확대 변환이 박싱보다 우선이라 f(1)은 f(Integer)보다 f(long)을 고른다. null은 모호성 오류의 원인이 된다.
  • 재귀는 기저 조건 + 재귀 단계로 구성되고, 트리처럼 구조가 재귀적인 문제에 어울린다. 깊이가 커지면 StackOverflowError가 나므로 단순 반복은 반복문으로 쓴다.
  • 입력만으로 결과가 정해지면 static 유틸, 객체의 상태를 다루면 인스턴스 메서드. 긴 main은 이름 붙일 수 있는 조각으로 추출하고, 예외 입력은 가드 절로 앞에서 걸러 낸다. 이름은 동사로, boolean은 is/has/can으로.

다음 단계인 중급 06 레슨에서는 이 메서드들이 클래스 설계와 만나면 어떻게 되는지, 즉 정적 팩토리 메서드, 빌더, 메서드 체이닝, 템플릿 메서드, Optional 반환, 방어적 복사 같은 실무 패턴을 다룹니다.