자바 메서드 활용과 재귀 호출

메서드 기본 개념

메서드는 특정 기능을 수행하는 코드 블록입니다. 주요 장점:

  • 코드 모듈화로 복잡성 감소
  • 재사용성을 통한 개발 효율 향상
  • 가독성 및 유지보수성 개선
// 윤년 판별 메서드 예시
public class CalendarUtil {
    public static boolean checkLeapYear(int year) {
        return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
    }
}

메서드 정의 규칙

// 정수 곱셈 메서드
public class MathOperations {
    public static int multiply(int first, int second) {
        return first * second;
    }
}

주요 규칙:

  1. 반환 타입 존재시 일치해야 함
  2. 메서드명은 카멜 케이스 적용
  3. 클래스 내부에서만 정의 가능
  4. 메서드 중첩 정의 불가

실행 과정과 매개변수

// 메서드 호출 순서 확인
public class ProcessDemo {
    public static void main(String[] args) {
        int result = calculate(5, 7);
        System.out.println("결과: " + result);
    }
    
    public static int calculate(int a, int b) {
        System.out.println("계산 수행 중");
        return a * b;
    }
}

매개변수 특성:

  • 값에 의한 호출(call by value)
  • 기본형 매개변수는 원본 미영향
  • 배열은 참조 전달 가능
// 배열을 이용한 값 교환
public class ArraySwap {
    public static void swapValues(int[] data) {
        int temp = data[0];
        data[0] = data[1];
        data[1] = temp;
    }
}

메서드 오버로딩

동일한 이름의 메서드를 매개변수 차이로 여러 개 정의:

public class Calculator {
    public static int sum(int x, int y) {
        return x + y;
    }
    
    public static double sum(double x, double y) {
        return x + y;
    }
    
    public static int sum(int x, int y, int z) {
        return x + y + z;
    }
}

오버로딩 조건:

  1. 메서드명 동일
  2. 매개변수 타입/개수/순서 상이
  3. 반환 타입은 무관

재귀 호출 메커니즘

자기 자신을 호출하는 프로그래밍 기법:

// 팩토리얼 재귀 구현
public class RecursionExample {
    public static int factorial(int number) {
        if (number == 1) return 1;
        return number * factorial(number - 1);
    }
}

재귀 필수 조건:

  • 기본 사례(base case) 존재
  • 재귀 호출이 더 작은 문제 해결
// 숫자 합계 재귀 계산
public class DigitOperations {
    public static int digitSum(int value) {
        if (value < 10) return value;
        return value % 10 + digitSum(value / 10);
    }
}

주의사항:

  • 종료 조건 필수
  • 과도한 중복 계산 회피
  • 반복문 대체 가능시 성능 고려

태그: java 메서드 재귀 오버로딩 매개변수

7월 19일 05:33에 게시됨