Language/Java

메서드 기본( with static)

쿠키오빠 2024. 9. 2. 07:49
반응형

메서드!!!

코딩은 외우지 말고 이해하라고 하지만 메서드 공식은 외워서 나쁠 거 없다 ^ㅅ^

공식 : class명 변수명 = new class명(); → 최초, 메서드를 사용하겠다.

② 메서드를 사용하겠다 선언을 했으니 만들어 놓은(A,B,C) 메서드를 호출만 하면 된다.

공식 : 변수명.method명();

만약 전달인자가 50이 아니라 “안녕”(문자열)이라면 String var (자료형 일치)로 넣어줘야 한다.


static은 [클래스명.메서드명] 형식으로만 부르기!!

(new 형식은 오류는 나지 않아도 권장하지 않는다)

public class Application9 {  (이해만 하자)

    public static void main(String[] args) {

        /* title. 다른 클래스에 작성한 메서드를 호출할 수 있다. */
        /* comment. 우리는 Application에서 2개의 정수를 전달할 것이고, Calculator 클래스는 2개의 정수를 전달 받아,
         *   최소값을 구하는 메서드 (기능)
         *   최대값을 구하는 메서드 (기능)
         *   실행 후 Application에게 2개의 정수 중 큰 값과 작은 값이 무엇인지 알려줄 것이다. */

        int first = 20;
        int second = 5;

        Calculator calc = new Calculator();

        /* comment. non-static method 호출 방식 */
        calc.minNumberOf(first, second); // 삭제 가능한 코드 (min에 넣어 놨으니)

        int min = calc.minNumberOf(first, second);
        System.out.println("min = " + min);

        /* comment. static method 호출 방식 */
        /* comment. static 메서드도 non-static 메서드처럼 호출은 가능하나, 권장하지 않는다. → 노란 줄
        *   이미 메모리에 로딩이 되어있는 static 메서드는 여러 객체가 공유하게 된다.
        *   new 키워드로 접근하게 된다면, 공유된 값에 예상치 못한 동작을 유발할 수 있이 때문에 사용을 제한해 달라는 컴퓨터의 주의 문구. → 노란 줄 */
        Calculator.maxNumberOf(first, second); // 삭제 가능한 코드 (max에 넣어 놨으니)

        int max = Calculator.maxNumberOf(first, second); // static은 [클래스명.메서드명] 형식으로만 부르자. (노란 줄 뜬다..)
        System.out.println("max = " + max);

    }
}

↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓ (static과 기본형 메서드 차이) 위와 아래를 연결 방법 ↑↓↑↓↑↓↑↓↑↓

public class Calculator { 

    /* comment. 우리는 Application에서 2개의 정수를 전달할 것이고, Calculator 클래스는 2개의 정수를 전달 받아,
     *   최소값을 구하는 메서드 (기능)
     *   최대값을 구하는 메서드 (기능)
     *   실행 후 Application에게 2개의 정수 중 큰 값과 작은 값이 무엇인지 알려줄 것이다. */

    public int minNumberOf (int first, int second) {
        return (first < second) ? first : second; // 항상 min 값 출력
    }

    public static int maxNumberOf (int first, int second) { // static이란 공유하면서 바뀌지 않는 값이란 걸 알아두자
        return (first > second) ? first : second; // 항상 max 값 출력
    }

}
반응형