2025-03-04
Java에서 메서드(Method) 는 입력(매개변수) 과 출력(반환값) 의 유무에 따라 여러 형태로 나뉜다.
메서드는 특정 작업을 수행하는 코드 블록으로, 코드의 재사용성을 높이고 유지보수를 용이하게 한다.
반환타입 메서드이름(매개변수) {
실행할 코드;
return 반환값;
}
메서드 형태 | 설명 | 예제 코드 |
---|---|---|
매개변수 O, 반환값 O | 입력 값을 받아 연산 후 결과 반환 | int sum(int x, int y) { return x + y; } |
매개변수 X, 반환값 O | 내부에서 입력을 받아 결과 반환 | int getRandomNumber() { return new Random().nextInt(); } |
매개변수 O, 반환값 X | 입력 값을 받아 내부에서 실행만 수행 | void printMessage(String msg) { System.out.println(msg); } |
매개변수 X, 반환값 X | 실행만 하고 값 반환 없음 | void sayHello() { System.out.println("Hello!"); } |
import java.util.Scanner;
class MethodExample {
// 매개변수 O, 반환값 O
int sum(int x, int y) {
return x + y;
}
// 매개변수 X, 반환값 O
int sumFromUserInput() {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
sc.close();
return a + b;
}
// 매개변수 O, 반환값 X
void printSum(int x, int y) {
System.out.println("Sum: " + (x + y));
}
// 매개변수 X, 반환값 X
void printMessage() {
System.out.println("Hello, Java!");
}
}
Java에서 변수는 선언 위치에 따라 사용 범위(Scope) 가 달라진다.
변수의 사용 범위를 이해하면 메모리 관리와 코드 안정성을 높일 수 있다.
변수 유형 | 선언 위치 | 생명 주기 | 특징 |
---|---|---|---|
멤버 변수 | 클래스 내부 | 객체가 존재하는 동안 유지 | this 키워드를 통해 접근 가능 |
지역 변수 | {} 블록 내부 | 해당 블록이 끝나면 소멸 | 메서드 내부에서만 사용 가능 |
매개변수 | 메서드의 인자 | 메서드가 실행될 때 생성됨 | 메서드 호출 시 전달된 값 저장 |
static 변수 | 클래스 내부 (static 키워드 사용) | 프로그램 종료 시까지 유지 | 모든 객체가 공유 |
class VariableExample {
int instanceVar = 10; // 멤버 변수
static int staticVar = 20; // static 변수
void method(int paramVar) { // 매개변수
int localVar = 30; // 지역 변수
System.out.println("멤버 변수: " + instanceVar);
System.out.println("static 변수: " + staticVar);
System.out.println("매개변수: " + paramVar);
System.out.println("지역 변수: " + localVar);
}
}
this
를 사용하여 멤버 변수를 구별할 수 있음.class Person {
String name;
void setName(String name) {
this.name = name; // this를 사용하여 멤버 변수에 접근
}
}
메서드 오버로딩(Method Overloading) 은 같은 이름의 메서드를 매개변수의 개수나 타입에 따라 다르게 정의하는 기법이다.
즉, 같은 기능을 하는 메서드를 여러 형태로 제공할 수 있다.
class OverloadingExample {
// 2개의 정수를 더하는 메서드
int sum(int x, int y) {
return x + y;
}
// 3개의 정수를 더하는 메서드
int sum(int x, int y, int z) {
return x + y + z;
}
// 3개의 실수를 더하는 메서드 (double 타입)
double sum(double x, double y, double z) {
return x + y + z;
}
}
public class OverloadingTest {
public static void main(String[] args) {
OverloadingExample obj = new OverloadingExample();
System.out.println("sum(10, 20) 결과: " + obj.sum(10, 20));
System.out.println("sum(10, 20, 30) 결과: " + obj.sum(10, 20, 30));
System.out.println("sum(10.5, 20.5, 30.5) 결과: " + obj.sum(10.5, 20.5, 30.5));
}
}
sum(10, 20) 결과: 30
sum(10, 20, 30) 결과: 60
sum(10.5, 20.5, 30.5) 결과: 61.5
this
키워드를 활용하면 멤버 변수와 지역 변수를 구분할 수 있다.this
키워드를 활용하여 멤버 변수와 지역 변수 구분