IT
Java 함수(메서드) 완벽 가이드
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 메서드
객체 없이 클래스명으로 호출 가능
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.