1. 매서드의 정의

접근제한자 리턴타입 메서드명(인수1, 인수2, ...){
        수행코드;
        return 반환값;
}

* return값이 없는 경우에는 리턴타입이 void

* 매개변수는 ',' 로 구분, 매개변수가 없더라도 괄호 ( ) 필요

 

2. 매서드 호출

자료형 변수명 = 매서드명(인수1, 인수2, ...)

*호출시 인수의 개수와 타입이 일치해야 함

*매서드의 결과는 하나의 값으로 나오기 때문에 하나의 변수로 받아줘야 함

public class MethodMakeTest{
    public static void main(String[] args) {
        int a=3;
        int b=5;
        int result=add(a,b); //매서드 호출
        System.out.println("result = " + result);
    }
    
    //매서드 정의
    public static int add(int a, int b){
        int sum=a+b;
        return sum;
    }
}
result = 8

종료 코드 0(으)로 완료된 프로세스

 

3. 매개변수 전달기법

1. Call by Value(값 전달)

public int add(int a, int b){
    int sum = a+b;
    return sum;
}

2. Call by Reference(번지 전달)

public int add(int[ ] a){
    int sum=0;
    for(int i=0;i<a.length;i++){
      sum+=a[i];
  }
  return sum;
}

*예시(배열 a를 모두 더하는 매서드를 정의하여 사용하기)

public class CallByReference {
    public static void main(String[] args) {
        int []a={1,2,3,4,5};
        int result=ArrayAdd(a);
        System.out.println("result = " + result);
    }
    public static int ArrayAdd(int[] a){
        int sum=0;
        for(int i=0;i<a.length;i++){
            sum+=a[i];
        }
        return sum;
    }
}
result = 15

종료 코드 0(으)로 완료된 프로세스

 

4. 매서드의 오버로딩(Overloading)

- 오버로딩: 하나의 클래스 내에서 동일한 이름의 매서드를 여러 개 사용할 수 있는 기법

- 오버로딩 전제조건: 매서드의 시그니처(매개변수 개수, 타입)가 달라야 함

*예시(정수, 실수를 받아서 총합을 구하는 매서드 정의하고 호출하여 사용하기)

public class OverloadingTest {
    public static void main(String[] args) {
        float v=Add(12.1f, 45.4f);
        System.out.println("v = " + v);
        int vv=Add(10,80);
        System.out.println("vv = " + vv);
    }
    public static int Add(int a, int b){
        int sum=a+b;
        return sum;
    }
    public static float Add(float a, float b){
        float sum=a+b;
        return sum;
    }
}
v = 57.5
vv = 90

종료 코드 0(으)로 완료된 프로세스

 

 

 

 

'Study > Java' 카테고리의 다른 글

[개념]JVM이 사용하는 메모리 영역  (0) 2025.06.15
[개념]Static, NoneStatic  (1) 2025.06.15
[개념] for문과 while문  (4) 2025.05.30
[개념]If문과 Switch-case문  (0) 2025.05.30
[개념]키보드로부터 데이터 입력 받기  (1) 2025.05.29

+ Recent posts