[패스트캠퍼스] [ 메서드와 변수 ] 나도 할 수 있는 Java&Spring 웹 개발 종합반 50 ~ 54강

2024. 5. 16. 13:54나도 할 수 있는 Java&Spring 웹 개발 종합반

728x90
반응형

 

1. 메서드란 무엇인가

객체가 가지고 있는 동작(기능)메서드(함수)라고 한다

반복적인 동일 작업을 메서드를 만들어 사용하면 편리

객체지향프로그램은 객체가 가지고 있는 메서드를 통해서 데이터를 서로 주고 받으며 상호작용을 한다

메서드는 크게 API에서 제공해주는 메서드사용자 정의 메서드의 두 종류로 분류할 수 있다

메서드는 정의를 하고 호출을 하여 사용되어진다

 

2. 메서드는 변수다

* 메서드의 정의와 호출

접근제한자 리턴타입 메서드명 (인수 1, 2, ... ) { // 인수 -> 매개변수는 콤마로 구분, 매개변수가 없더라도 {} 필요
 수행코드; // 리턴타입 : 수행된 후에 반환되는 결과의 자료형, 아무 결과도 반환하지 않으면 자료형에 void를 씀
 return 반환값; // 메서드를 종료하고 메서드의 결과를 반환(return)하는 역할
}

 

Ex)

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

 

* 메서드 호출하기

 # 실인수와 가인수의 개수와 타입이 일치해야 호출된다

public static void main(String[] srgs) {
 int a= 3;
 int b = 5;
 int result = add(a, b); // 메서드 호출
} // 실인수

 

public int add (int a, int b) {
 int sum = a + b;
 reurn sum;
} // 가인수

 

메서드의 결과 값은 하나의 형태로 만들어진다

변수는 데이터를 하나의 형태로 저장한다

메서드의 이름이 변수 역할을 한다

 

< 실습 >

 

3. 매개변수 전달기법 (parameter passing)

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

 Call by Value ( 값 전달 )

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

 Call by Reference ( 번지 전달 ) -> 자바에서 주로 사용

 

4. 메서드 오버로딩 (중복 정의)

하나의 클래스에서 동일한 이름의 메서드를 여러 개 사용할 수 있는 객체지향 기법

- 동작이 비슷하기 때문에 메서드 이름은 같게 만들어 사용하면 편리하다

 

오버로딩의 전제조건 -> 메서드의 시그니처가 달라야 한다

- 시그니처 : 매개변수의 개수, 매개변수의 타입

 

1.

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

 

2.

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

 

3.

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

 

-> 오버로딩 예시

 

* 정적 바인딩이란? : 컴파일 시점에서 사용될(호출될) 메서드가 결정(연결)되는 바인딩

 

// 바인딩(Binding) 이란 프로그램의 어떤 기본 단위가 가질 수 있는 구성요소의 구체적인 값, 성격을 확정하는 것을 말한다.

 

오버로딩 -> 코딩 당시 이름이 중복됨. 컴파일 시점에서 내부 코드를 자료형에 따라 바꾼다 실제로는 중복이 되어있지 않음.

 

* 우리가 사용하게 될 메서드 종류! 메서드는 클래스 내에서 독립적으로 만들어야 한다 (하나의 단위작업을 처리)

 

public class APiOverloading {
    public static void main(String[] args) {
        System.out.println(10);
        System.out.println(10.5f);
        System.out.println('A');
        System.out.println("APPLE");
        // println은 어떠한 자료형을 넣어도 출력해줌 -> Method Overloading
    }
}

10
10.5
A
APPLE

 

public class APiOverloading {
    public static void main(String[] args) {
        int max = maxValue(7, 9);
        System.out.println("max = " + max);
        int min = minValue(3, 8);
        System.out.println("min = " + min);
    }
    // Q. 두개의 정수를 매개변수로 받아서 더 큰 수를 리턴하는 메서드를 정의하시오.
     public static int maxValue(int a, int b) {
        return (a>b) ? a : b;
     }
    // Q. 두개의 정수를 매개변수로 받아서 더 작은 수를 리턴하는 메서드를 정의하시오.

    public static int minValue(int a, int b) {
        return (a<b) ? a : b;
    }
}

max = 9
min = 3

 

728x90
반응형