자바 기초(메소드)

웅평·2023년 11월 20일

메소드

메소드란 어떤 기능을 수행하기 위한 명령어들의 모임

메소드가 필요한 이유

  • 중복된 코드를 줄인다
  • 코드 간소화

메소드 형식
public 자료형 메소드이름( [매개변수..] ){
명령어(들)
return [값];
}

메소드는 호출문에 의해서 동작하고 메소드의 body가 모두 끝나면 메소드 호출하는 곳으로 되돌아(return) 간다
이때 메소드의 역할에 따라 return 값이 있을수도, 없을수도 있다

만약, 리턴값이 있으면 메소드이름 왼쪽에 리턴값의 자료형을 써 준다.
만약, 리턴값이 없으면 메소드이름 왼쪽에 void라고 써준다.

메소드 정의

public class _01_Method {
    // 메소드 정의
    public static void sayhello() {
        System.out.println("안녕하세요 메소드 입니다");
    }

    public static void main(String[] args) {
        // 메소드 : 어떤 기능을 하느 코드의 묶음 ex) 함수 같은것
        // 메소드 호출
        System.out.println("메소드 호출 전");
        sayhello();
        sayhello();
        sayhello();
        System.out.println("메서드 호출 후");
    }
}

전달값(Parameter)

public class _02_Parameter {
    public static void power(int num) {
        // Parameter, 매개변수
        int res = num * num;
        System.out.println(num + "의 승은 " + res);
    }

    // 전달값 2개 이상
    // x의 y제곱
    public static void powser_ex(int x, int y) {
        int res = 1;
        for (int i = 0; i < y; i++) {
            res *= x;
        }
        System.out.println(x + "의 " + y + "승은 " + res);
    }

    public static void main(String[] args) {
        // 전달값이 있는 Parameter
        // 제곱 메소드 만들기

        // 인수 : Argument 을 넣어줘야 한다
        power(2);

        int x = 3;
        power(x);

        powser_ex(2, 3);
        powser_ex(3, 3);
        powser_ex(5, 0);
    }
}

메소드에 매개변수를 전달받아 메소드를 호출한다

Return

  • void로 적으면 아무것도 반환하지 않는 메소드
  • return을 쓰려면 반환할 값을 문자열, 정수형등 정의 해야하고 return값이 같은 형태이어야 한다
public class _03_Return {
    public static String getPhoneNumber() {
        String number = "02-1234-1234";
        return number;
    }

    public static String getAddres() {
        return "서울시";
    }

    public static String getActivity() {
        return "볼링장, 탁구장, 수영장";
    }

    public static void main(String[] args) {
        // return 반환값
        String phone_number = getPhoneNumber();
        System.out.println("전화번호 " + phone_number);

        String address = getAddres();
        System.out.println("주소는" + address);

        System.out.println("놀거리는 " + getActivity());
    }
}

String를 반환하게 적었기 때문에 return에는 String만 올 수 있다

전달값과 반환값

public class _04_ParameterAndReturn {
    public static int getPower(int number) {
        int res = number * number;
        return res;
    }

    public static int getPowerByExp(int x, int y) {
        int res = 1;
        for (int i = 0; i < y; i++) {
            res *= x;
        }
        return res;
    }

    public static void main(String[] args) {
        // 전달값과 반환값이 있는 메소드
        int val = getPower(2);
        System.out.println(val);

        val = getPower(4);
        System.out.println(val);

        val = getPowerByExp(3, 3);
        System.out.println(val);
    }
}

매개변수를 전달받아 반환값이 있는 메소드를 호출하였다

오버라이딩

메소드 오버로딩 = 같은 이름의 메소드를 여러번 선언
1. 전달값이 타입이 다르거나
2. 전달값의 갯수가 다르거나
전달하는 자료형에 따라 메소드 이름이 같지만 각각 자료형이 다른 메소드를 각각 호출
메소드 이름이 같아도 전달하는 인수 갯수가 달라다면 맞는 메소드를 호출

public class _05_Overloading {
    // 문자열을 정수로
    public static int getPower(String strNumber) {
        int num = Integer.parseInt(strNumber);
        return num * num;
    }

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

    public static int getPower(int x, int y) {
        int res = 1;
        for (int i = 0; i < y; i++) {
            res *= x;
        }
        return res;
    }

    public static void main(String[] args) {
        int val = getPower(3);
        System.out.println(val);

        val = getPower("3");
        System.out.println(val);

        System.out.println(getPower(3, 3));

    }
}

메소드 이름이 같지만 전달값 타입이 다르거나 갯수가 다르게하여 오버라이딩 하였다

국비학원에서 배운것과 따로 공부한 것을 정리한 것입니다

참고
나도코딩 유튜브

0개의 댓글