'
본문 바로가기
study/Programming

[JAVA 기초] 매개변수와 전달인자

by meowdule 2025. 4. 18.

 

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, "홍길동");  // ⚠️ 자료형 순서 불일치

 

 

 

 

 

 

 

마무리
다음 게시글에서는 메소드 오버로딩에 대해서 학습하겠습니다.