Java 개념

Method

ron_nie 2023. 6. 20. 18:59
728x90
// 숫자를 제곱해주는 코드
public static int getPower(int number){
	int result = number * number
    return result
}

// 숫자를 거듭제곱 해주는 코드
public static int getPowerByExp(int number, int exponent){
	int result = 1;
    for(int i = 0 ; i < exponent ; i++){
    	result *=number
    }
    return result
}

메소드

자바스크립트의 함수랑 비슷한 기능인듯.

1. 만드는법.

public class _01_Method {
    // 🧐 메소드 만들기
    public static void sayHello(){
        System.out.println("안녕하세요 메소드입니다.");
    }



    public static void main(String[] args) {
        // 🧐 메소드 호출하기
        System.out.println("메소드 호출 전");

        sayHello(); // 안녕하세요 메소드입니다.

        System.out.println("메소드 호출 후");
    }
}

2. 인자를 넣어보기

2-1. 인자가 한개인 메소드

public static void power (int number) {
	int result = number * number
}

2-2. 인자가 두개인 메소드

// 거듭제곱
public static void powerByExp(int number, int exponent){
	int result = 1;
    for(int i = 0 ; int < exponent ; i++){
    	result = result * number
    }
}

3. 인자와 return

// 제곱해주는 코드
public static int getPower(int number) {
    int result = number * number;
    return result;
    // return number * number
}


// 거듭제곱 해주는 코드
public static int getPowerByExp(int number, int exponent) {
    int result = 1;
    for (int i = 0; i < exponent; i++) {
        result *= number;
    }
    return result;
}

반환이 없는 메소드에서는 void를 사용했지만 반환값이 있는 코드에서는 반환되는 값의 타입을 적어줘야한다.

4. 메소드 오버로딩

비슷한 기능을 가진 메소드를 같은 이름으로 많이 만들 수 있는 방법이다.

4-1. 조건

1. 전달값(파라미터)의 타입이 달라야 한다.

2. 전달값(파라미터)의 갯수가 달라야 한다.

1, 2 두가지중 하나의 조건을 만족하면 오버로딩이 가능하다. 주의할 점은 파라미터가 아닌 메소드 자체의 타입이 다르면 오버로딩이 불가능하다.

4-2. 활용

public class _05_Overloading {

    public static int getPower(int number) {
        int result = number * number;
        return result;
        // return number * number
    }

    // ⭐️ 문자를 넣어도 숫자로 변환해서 제곱을 해주는 메소드
    public static int getPower(String StrNumber) {
        int number = Integer.parseInt(StrNumber);
        return number * number;
    }

    public static int getPower(int number, int exponent) {
        int result = 1;
        for (int i = 0; i < exponent; i++) {
            result *= number;
        }
        return result;
    }

    public static void main(String[] args) {

        System.out.println(getPower(3)); // 9
        System.out.println(getPower("3")); // 9
        System.out.println(getPower(3,3)); // 27
    }
}

맨위의 메소드와 이름이 같은 두개의 메소드지만 하나는 파라미터가 문자열로 첫번째와 다르고 하나는 파라미터가 두개로 첫번째와 다르기 때문에 오버로딩이 가능하다.

4-3. 더 편리한 방법

    public static int getPower(int number) {
        // ⭐️ 만약 제곱 한번이 필요하다면 인자를 하나 넣으면 되고 두개를 넣고싶다면 두개를 넣으면 된다.
        return getPower(number , 2);
    }
    public static int getPower(int number, int exponent) {
        int result = 1;
        for (int i = 0; i < exponent; i++) {
            result *= number;
        }
        return result;

    }

비슷한 역할을 하는 메소드라면 리턴으로 메소드를 호출해도 된다. 위 경우는 파라미터가 하나 들어가든 두개가 들어가든 밑의 코드로 두가지 메소드 효용이 가능하기 때문에 이렇게 축약 할 수 있다.

반응형