IMG-LOGO
공지사항 :

Java 함수(메서드) 완벽 가이드

lmkfox - 2025-06-06 07:57:16 26 Views 0 Comment

1. 함수란?

함수(Function) 또는 메서드(Method)특정 작업을 수행하는 코드 블록입니다.

Java에서는 클래스 내부에 정의되며, 코드의 재사용성구조화를 높이는 데 필수적인 개념입니다.


2. 함수의 기본 구조

리턴타입 함수명(매개변수목록) {
    // 실행 코드
    return 반환값;
}

예시:

public int add(int a, int b) {
    int sum = a + b;
    return sum;
}

구성요소 설명

구성요소

설명

접근제어자

public, private 등

반환형

결과로 반환되는 값의 자료형

함수명

메서드 이름 (소문자로 시작 권장)

매개변수

외부로부터 전달받는 값들

return문

결과를 반환


3. 매개변수(Parameter)와 인자(Argument)

  • 매개변수(Parameter): 함수를 정의할 때 선언한 변수

  • 인자(Argument): 함수를 호출할 때 실제로 전달하는 값

예시:

public void greet(String name) {
    System.out.println("Hello, " + name);
}

// 호출
greet("Alice"); // name에 "Alice"가 전달됨


4. 반환값(Return)

함수가 작업을 마친 후 결과를 돌려주는 것.

void는 반환값이 없다는 뜻입니다.

public int square(int x) {
    return x * x;
}

public void printHello() {
    System.out.println("Hello");
}


5. 함수 호출

int result = square(5);
printHello();


6. 함수 오버로딩(Overloading)

같은 이름의 함수지만 매개변수가 다르면 여러 개 정의 가능

public int add(int a, int b) {
    return a + b;
}

public double add(double a, double b) {
    return a + b;
}

public int add(int a, int b, int c) {
    return a + b + c;
}

오버로딩은 다형성(polymorphism) 의 한 형태로 이해할 수 있으며, 객체지향 설계에 유리한 방식입니다.


7. 접근 제어자와 static 키워드

접근 제어자

  • public: 어디서든 접근 가능

  • private: 클래스 내부에서만 접근 가능

  • protected: 같은 패키지 또는 자식 클래스에서 접근 가능

  • default (지정하지 않음): 같은 패키지에서만 접근 가능

static 키워드

  • static 함수는 객체 생성 없이 호출 가능

  • 보통 유틸리티 함수에 사용

public static int multiply(int x, int y) {
    return x * y;
}

// 호출 예시
int result = MyClass.multiply(3, 4);


8. 실습 예제

public class Calculator {

    // 덧셈
    public int add(int a, int b) {
        return a + b;
    }

    // 곱셈 (static)
    public static int multiply(int a, int b) {
        return a * b;
    }

    // 메시지 출력
    public void printMessage(String msg) {
        System.out.println("Message: " + msg);
    }

    public static void main(String[] args) {
        Calculator calc = new Calculator();

        int sum = calc.add(10, 20);
        System.out.println("Sum: " + sum);

        int product = Calculator.multiply(3, 5);
        System.out.println("Product: " + product);

        calc.printMessage("Java 메서드 학습 중");
    }
}


9. 함수 사용의 장점

  • 재사용성 증가: 중복 코드 제거

  • 가독성 향상: 코드 블록화로 읽기 쉬움

  • 유지보수 용이: 함수 단위로 수정 가능

  • 테스트 및 디버깅 쉬움


10. 교육 팁 (교사용)

  • 실습 중심: 입출력 없는 간단한 함수부터 시작

  • 연습 문제 제시: 최대값, 절댓값, 팩토리얼, 소수 판별 함수 만들기

  • static과 인스턴스 메서드 차이를 실습을 통해 명확히 전달

  • 메서드 오버로딩 실습을 통해 다형성 개념 예고


요약

항목

설명

메서드 정의

리턴타입, 함수명, 매개변수, 실행 코드 포함

호출 방식

객체.메서드명(인자); 또는 클래스명.메서드명()

반환값

return 문으로 결과 반환 (void는 없음)

오버로딩

매개변수의 타입/개수에 따라 여러 함수 정의

static 메서드

객체 없이 클래스명으로 호출 가능


댓글