목차
1. 매개변수(Parameter) vs 전달인자(Argument)
| 구분 | 설명 |
| 매개변수 | 메소드 선언 시 괄호 안에 정의된 변수. 외부로부터 전달받을 값을 담는 역할 |
| 전달인자 | 메소드 호출 시 실제로 넘겨주는 값 |
📌 즉, 전달인자 → 매개변수로 값이 복사되어 전달됩니다.
예를 들어:
public void greet(String name) { // ← 매개변수
System.out.println("Hello, " + name);
}
greet("Alice"); // ← 전달인자
2. 변수의 종류 간단 소개
자바에서는 사용하는 위치에 따라 변수의 종류를 나눌 수 있습니다:
| 종류 | 설명 |
| 지역변수 | 메소드 내부에서 선언된 변수. 해당 블록 안에서만 사용 가능 |
| 매개변수 | 메소드 선언부 괄호 안에서 선언된 변수. 호출 시 전달인자의 값을 받아 사용 |
| 전역변수 (필드) | 클래스 내부에서 선언된 변수. 여러 메소드에서 공유 가능 |
| 클래스 변수 (static) | static 키워드가 붙은 변수. 클래스 전체에서 공유 |
3. 다양한 전달인자 전달 방식
메소드 호출 시 인자를 넘겨주는 방법은 다양합니다:
📌 리터럴 직접 전달
printAge(25); // 숫자 리터럴 직접 전달
📌 변수에 담아 전달
int userAge = 30;
printAge(userAge);
📌 자동 형변환 후 전달
byte age = 10;
printAge(age); // byte → int 자동 형변환
📌 강제 형변환 후 전달
long ageLong = 60L;
printAge((int) ageLong); // 명시적 형변환
📌 연산 결과 전달
printAge(10 + 5); // 계산 후 결과 전달
⚠️ 자료형이 다를 경우, 자동 또는 강제 형변환이 필요할 수 있습니다.
4. 예제
📌 예제: 전달인자를 이용해 나이를 출력하는 메소드
public class Application {
public static void main(String[] args) {
Application app = new Application();
// ① 리터럴 전달
app.printAge(25);
// ② 변수 전달
int myAge = 30;
app.printAge(myAge);
// ③ 자동 형변환 전달
byte ageByte = 20;
app.printAge(ageByte);
// ④ 강제 형변환 전달
long ageLong = 70;
app.printAge((int) ageLong);
// ⑤ 연산 결과 전달
app.printAge(myAge + 5);
}
public void printAge(int age) {
System.out.println("당신의 나이는 " + age + "세 입니다.");
}
}
당신의 나이는 25세 입니다.
당신의 나이는 30세 입니다.
당신의 나이는 20세 입니다.
당신의 나이는 70세 입니다.
당신의 나이는 35세 입니다.
📌 전달인자 순서 오류 예제
public void introduce(String name, int age) {
System.out.println("이름: " + name + ", 나이: " + age);
}
// 올바른 호출
introduce("홍길동", 20);
// 잘못된 호출 (순서가 다름 → 컴파일 에러)
introduce(20, "홍길동"); // ⚠️ 자료형 순서 불일치
마무리
다음 게시글에서는 메소드 오버로딩에 대해서 학습하겠습니다.
'study > Programming' 카테고리의 다른 글
| [JAVA 기초] 메소드의 반환값 (return) (1) | 2025.04.20 |
|---|---|
| [JAVA 기초] 메소드 오버로딩 (1) | 2025.04.19 |
| [JAVA 기초] 메소드 선언과 호출 구조 (1) | 2025.04.17 |
| [JAVA 기초] 메소드란? (1) | 2025.04.16 |
| [JAVA 기초] 비교 연산자와 논리 연산자 (1) | 2025.04.15 |