[접근제어자] [반환타입] 메소드이름([매개변수]) {
// 수행할 코드
return 반환값; // 반환 타입이 void가 아닐 경우
}
public int add(int a, int b) {
return a + b;
}
public: 접근 제어자 (어디서든 접근 가능)
int: 반환 타입 (결과로 정수값을 반환)
add: 메소드 이름
(int a, int b): 매개변수 (입력값)
메소드는 호출해야 실행됩니다.
int result = add(3, 5); // result = 8
반환값이 필요 없을 경우 void를 사용합니다.
public void printHello() {
System.out.println("Hello");
}
메소드가 입력값을 받아 작업할 수 있도록 **매개변수(parameter)**를 정의합니다.
public void greet(String name) {
System.out.println("Hello, " + name);
}
같은 이름의 메소드를 매개변수 타입이나 개수를 달리하여 여러 개 정의할 수 있습니다.
public int multiply(int a, int b) {
return a * b;
}
public double multiply(double a, double b) {
return a * b;
}
반환 타입은 오버로딩 기준이 되지 않습니다.
static 키워드를 사용하면 객체를 생성하지 않고 클래스 이름으로 직접 호출할 수 있습니다.
public class MathUtils {
public static int square(int x) {
return x * x;
}
}
int result = MathUtils.square(4); // 결과: 16
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public void showResult(int result) {
System.out.println("결과: " + result);
}
public static void main(String[] args) {
Calculator calc = new Calculator();
int sum = calc.add(3, 4);
calc.showResult(sum);
}
}
코드 재사용성 증가: 중복 코드를 줄일 수 있음
코드 가독성 향상: 각 기능을 분리해 읽기 쉽고 유지보수 용이
모듈화: 프로그램을 논리적으로 구분
제어자 |
접근 가능 범위 |
---|---|
public |
모든 클래스에서 접근 가능 |
private |
선언된 클래스 내부에서만 가능 |
protected |
같은 패키지 또는 상속 클래스 |
(default) |
같은 패키지 내에서만 접근 가능 |
인스턴스 메소드 (non-static)는 객체가 생성된 후 사용합니다.
MyClass obj = new MyClass();
obj.myMethod();
자기 자신을 호출하는 메소드입니다.
public int factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
구성 요소 |
설명 |
---|---|
선언 방식 |
반환타입, 이름, 매개변수 포함 |
반환 타입 |
메소드가 돌려주는 값의 타입 |
매개변수 |
메소드에 전달되는 입력값 |
static 여부 |
클래스 소속인지 인스턴스 소속인지 |
오버로딩 |
같은 이름, 다른 매개변수 가능 |