프로그래밍 언어/Java

자바 메서드 함수 — 코드를 재사용 가능한 블록으로 만들기(Java 기초)

테크위키 2026. 3. 21. 20:30
반응형

메서드 — 코드를 재사용 가능한 블록으로 만들기

같은 코드를 여러 번 복사해서 쓰는 건 번거롭고 실수하기도 쉬워요.
메서드를 쓰면 코드 블록에 이름을 붙여두고 필요할 때마다 꺼내 쓸 수 있어요! 🧩


📌 이 글에서 다룰 내용

  1. 메서드란 무엇인가?
  2. 메서드 만들고 호출하기
  3. 매개변수와 반환값
  4. 메서드 오버로딩
  5. 실습 — BMI 계산기 만들기

1. 메서드란 무엇인가?

메서드는 특정 작업을 수행하는 코드 묶음이에요.
우리가 이미 써온 System.out.println(), scanner.nextInt() 도 모두 메서드예요.
이번엔 우리가 직접 만들어볼게요!


2. 메서드 만들고 호출하기

메서드는 클래스 안에 선언해요.

반환타입 메서드이름(매개변수) {
    // 실행할 코드
}

반환값이 없으면 void 를 써요.

public class HelloMethod {

    static void sayHello() {
        System.out.println("안녕하세요!");
        System.out.println("자바 블로그에 오신 걸 환영해요!");
    }

    public static void main(String[] args) {
        sayHello();  // 메서드 호출
        sayHello();  // 여러 번 재사용 가능!
    }
}
안녕하세요!
자바 블로그에 오신 걸 환영해요!
안녕하세요!
자바 블로그에 오신 걸 환영해요!

3. 매개변수와 반환값

매개변수 — 메서드에 값 전달하기

static void greet(String name) {
    System.out.println("안녕하세요, " + name + "님!");
}

public static void main(String[] args) {
    greet("홍길동");  // 안녕하세요, 홍길동님!
    greet("김철수");  // 안녕하세요, 김철수님!
}

매개변수가 여러 개일 때는 쉼표로 구분해요.

static void introduce(String name, int age) {
    System.out.println("저는 " + name + "이고 " + age + "살이에요.");
}

반환값 — 결과값 돌려주기

계산 결과를 돌려주려면 return 을 써요.

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

public static void main(String[] args) {
    int result = add(3, 5);
    System.out.println("결과: " + result);  // 결과: 8
}

💡 반환 타입과 return 값의 자료형이 일치해야 해요.
int 를 반환하는 메서드에서 String 을 리턴하면 오류가 나요.


4. 메서드 오버로딩

같은 이름의 메서드를 매개변수를 다르게 해서 여러 개 만들 수 있어요.
이걸 오버로딩(Overloading) 이라고 해요.

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

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

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

public static void main(String[] args) {
    System.out.println(add(3, 5));          // 8
    System.out.println(add(1.5, 2.3));      // 3.8
    System.out.println(add(1, 2, 3));       // 6
}

자바가 매개변수의 자료형과 개수를 보고 알아서 맞는 메서드를 호출해요!


5. 실습 — BMI 계산기 만들기

BmiCalculator.java 파일을 만들고 아래 코드를 작성해요.

import java.util.Scanner;

public class BmiCalculator {

    static double calculateBmi(double weight, double height) {
        return weight / (height * height);
    }

    static String getStatus(double bmi) {
        if (bmi < 18.5) {
            return "저체중";
        } else if (bmi < 23.0) {
            return "정상";
        } else if (bmi < 25.0) {
            return "과체중";
        } else {
            return "비만";
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("몸무게(kg): ");
        double weight = scanner.nextDouble();

        System.out.print("키(m, 예: 1.75): ");
        double height = scanner.nextDouble();

        double bmi = calculateBmi(weight, height);
        String status = getStatus(bmi);

        System.out.printf("%nBMI: %.2f%n", bmi);
        System.out.println("판정: " + status);

        scanner.close();
    }
}

오늘 배운 것 정리

  • ✅ 메서드는 반환타입 메서드이름(매개변수) 형태로 선언해요.
  • ✅ 반환값이 없으면 void, 있으면 해당 자료형을 명시해요.
  • return 으로 계산 결과를 돌려줄 수 있어요.
  • ✅ 오버로딩으로 같은 이름의 메서드를 매개변수만 다르게 만들 수 있어요.

🎯 다음 편 예고
9편에서는 자바의 핵심 클래스와 객체 를 배워요.
객체 지향 프로그래밍의 첫걸음을 같이 떼봐요!


이 글이 도움이 됐다면 다음 편도 같이 읽어봐요 😊 질문이 있으면 언제든지 댓글로 남겨주세요!