Java 공부

Day08 - 메서드(함수) 생성과 사용

Hesitater 2021. 8. 24. 14:23
728x90

메서드(method)

- 메서드는 반복되는 코드 블록에 이름을 붙여 놓은 것입니다.

- 메서드는 반복되는 코드를 줄여주고, 좀 더 구조화 시켜 우리가 코드를 알아보기 쉽게 합니다.

- 객체지향프로그래밍에서 메서드는 '객체가 가져야할 기능을 구현하기 위해 만든다.' 라고 표현하기도 합니다.

- 메서드의 이름 뒤에는 반드시 소괄호'()'가 따릅니다.

메서드 선언 방법(반드시 외우자)

<반환 유형> <메서드 식별자 이름> (매개 변수) { 기능 상세;

}

메서드의 구분, 매개변수

유형 1 : 매개변수 있고, 반환 값 있다! 전달인자 (○), 반환 값 (○)
유형 2 : 매개변수 있고, 반환 값 없다! 전달인자(○), 반환 값 (X)
유형 3 : 매개변수 없고, 반환 값 있다! 전달인자 (X), 반환 값(○)
유형 4 : 매개변수 없고, 반환 값 없다! 전달인자(X), 반환 값(X)

매개 변수 (parameter)

- 매개 변수는 메서드가 실행될 때 필요한 데이터를 외부로부터 받기 위해 사용됩니다.
- 매개 변수도 일종의 변수이기 때문에 메서드의 소괄호() 부분에 데이터 타입과 함께 선언하지 않을수도 있습니다. 이때는 반환 유형을 적을때와 같이 void를 쓰지않고 소괄호() 안에 비워둬야 합니다.

반환유형(return type)

- 반환 유형은 메서드가 실행한 후 메서드를 호출한 곳에서 반환하는 값의 데이터 타입을 말합니다.

- 메서드는 반환값이 있을 수도 있고 없을 수도 있는데 없는 경우에는 반환 유형에 void를 적어줘야 합니다.

- 반환값이 있는 메서드를 호출할 때는 해당 반환 유형에 맞는 변수에 반환값을 저장해야 합니다.

-메서드가 실행의 결과값을 반환할 때는 return이라는 키워드를 사용합니다.

// 반환유형 x 매개변수 x
static void print() {
    System.out.println("정수 두개를 입력하세요!");
}

// 반환유형 o, 매개변수 x
static int input() {
    Scanner scan = new Scanner(System.in);
    System.out.print("정수 입력>");
    int num = scan.nextInt();

    return num;
}    

//반환유형 o, 매개변수 o

static int add(int num1, int num2) {
    int result = num1 + num2;
    return result;
}


// 반환유형 x, 매개변수 o
static void showResult(int result) {
    System.out.println("덧셈 결과: " + result);
}

문서 예시?

public class MethodBasic {

public static void main(String[] args) {

    print();
    int num1 = input();
    int num2 = input();

    int result = add(num1, num2);
    showResult(result);
 }

주말에 이거 다시 확인

package day05;  

public class MethodEx01 {  
public static void main(String\[\] args) {  

// 메서드는 메서드 내부에 만들 수 없습니다.  
// main밖, class안 어디서든 선언할 수 있습니다.  

// int sum = 0;  // 그대로 int calSum(){ 아래로  
// for(int i = 1; i <= 10; i++) {  
// sum += i;  
// }  

// 호출할떄는 이름만  

System.out.println("1~10까지 합:" + calSum());  
System.out.println("1~10까지 합:" + calSum());  

// calSum();  
int sum = calSum(); // 반환이 있는 메서드는 결과를 받아서 사용 할 수 있다.  

System.out.println("결과:" + sum);  

String str = randomStr();  
System.out.println("결과:" + str);  

char c = randomStr2();  
System.out.println("결과:" + c);  

}  
// 입력되는건없고  

static int calSum() {  

int sum = 0;  
for (int i = 1; i <= 10; i++) {  
sum += i;  
}  

return sum; // 반환  

}  

static String randomStr() {  
String str = "";  
for (char c = 'A'; c <= 'Z'; c++) {  
str += c;  
}  
return str;  
}  

static char randomStr2() {  
char c = 0;  

double d = Math.random(); // 0~1미만 실수형  
if (d > 0.66) {  
 c = 'A';  
} else if (d > 0.33) {  
 c = 'B';  
} else {  
 c = 'C';  
}  

 return c;                       // 허허..  
}  

static char randomStr3() {  
char c = 0;  

double d = Math.random(); // 0~1미만 실수형  
if (d > 0.66) {  
return 'A';  
} else if (d > 0.33) {  
return 'B';  
} else {  
return 'C';  
}  

//  return c;                        허허..  

}  
}