본문 바로가기

개발/Java

[Java] 자바 - 메소드(Method) / static 메소드

< 메소드 >

 

- 한 번 정의해두고, 필요할때마다 호출해서 사용

- '호출할 때의 인자값'이 '매개변수의 자료형', '매개변수 개수'와 일치해야 함

 

[ 표현법 ] 

접근제한자 (예약어) 반환형 메소드식별자(매개변수) {

           메소드 호출시 실행할 코드;

           ( return 반환값; )

}

// 예약어, 매개변수, return문 부분(반환형 - void)은 생략 가능

 

* 접근제한자 : 호출 할 수 있는 범위를 제한

* 반환형 : 메소드의 결과값(반환값)의 자료형 - void : 돌려줄 값이 없는 경우 사용

* 매개변수 : 메소드 호출시, 입력값으로 넣어주는 값을 받아주는 변수

                    해당 메소드 실행중에만 사용이 가능. 생략 가능

 

 

// 1. 매개변수도 없고 반환값도 없는 메소드
public void method1() {
    int sum = 0;
    for(int i = 1; i <= 10; i++) {
        sum += i; // sum = sum + i
    }
    System.out.println(sum);
    // return; void일 경우 return 생략 - JVM이 자동으로 만들어줌
}

// 2. 매개변수는 없고 반환값은 있는 메소드	
public int method2() {
    // 1 ~ 100까지의 랜덤값을 발생시켜서 돌려주고싶다.
    return (int)(Math.random() * 100) + 1;
}

// 3. 매개변수는 있고 반환값은 없는 메소드
public void method3(int num1, int num2) {
    int min = 0;
    int max = 0;
    
    if(num1 < num2) {
        min = num1;
        max = num2;
    } else {
        min = num2;
        max = num1;			
    }
    System.out.println("최솟값 : " + min + ", 최댓값 : " + max);
}

// 4. 매개변수도 있고 반환값도 있는 메소드
public int method4(int a, int b) {
    return a + b; // 재사용 가능성 없으면 변수생성X
}

 


 

< static 메소드 >

 

- 'static' 예약어를 사용하는 메소드

- 생성자를 사용하여 객체를 생성하지 않아도 메소드 호출 가능

[ 호출 ]  클래스이름.메소드이름();

                 ex) Math.random();

 

// 1.
public static void method1() {
    System.out.println("매개변수랑 반환값이 둘 다 없는 메소드");
}

// 2.
public static String method2() {
    return "매개변수는 없지만 반환값은 있는 메소드";
}

// 3.
public static void method3(String name, int age) {
    System.out.println("매개변수는 있지만 반환값은 없는 메소드");
    System.out.println("출력구문 : " + name + "님은 " + age + "살 입니다.");
}

// 4.
public static String method4(String name, int age) {
    System.out.println("매개변수와 반환값이 둘 다 있는 메소드");
    return name + "님 안녕하세요! " + age + "살 이시네요!";
}

 

* 주로

반환형이 없는 메소드 : 출력문을 메소드 내부에 작성

반환형이 있는 메소드 : 호출하는 부분에서 출력문을 작성