메서드(method)란?
자바는 기본단위가 클래스이기 때문에 모든 함수를 메서드라고 부른다.
/* 1.메서드는 정의(선언)하는 과정과 호출하는 과정이 있다.
* 2.메서드 선언은 메서드 내부에서느 할 수 없다. 반드시 메서드 블록 외부에서만 선언할 수 있다.
* 클래스 내부라면 어떤 위치든 선언이 가능하다 (main도 메서드 이므로 main안에는 선언 안됨)
* 3.메서드 내부에서는 다른 메서드의 호출만 가능하다.
* 4.호출하는 과정은 메서드를 사용하는 과정이며 해당 메서드가 필요로 하는 데이터(매개값)를
메서드 내부로 전달하면서 해당 메서드는 매개값을 통해 처리한 결과값을 호출부로 다시 반환한다.
*/
public class MethodExample {
//자바의 함수 (정의)선언
public static int calcSum(int x) { //앞 int는 return할 변수의 자료형이고, 뒤 int는 입력값의 자료형이다.
int sum = 0;
for(int i = 1; i <=x; i++) {
sum += i;
}
return sum
}
public static int clacSum2(int x, int y) {
int sum = 0;
for (int i = x; i <= y; i++) {
sum +=i;
}
return sum;
}
public static void main(String[] args)
System.out.println("1부터 10까지의 누적합: " + calcSum(10)); //1부터 10까지의 누적합:55
System.out.println("4~7까지의 누적합: " + calcSum2(4, 7));
매개변수(parameter)
/* 매개 변수
* 1. 매개 변수는 메서드를 호출할 때 실행에 필요한 값들을 메서드 내부로 전달하기 위한 메개체이다.
* 2. 메서드 호출부에서 어떤 매개값을 전달하느냐에 따라 메서드의 실행 결과가 달라진다.
* 3. 매개변수를 몇개 전달 받을 지느 ㄴ메서드를 선언할 때 선언부에서 결정해야 한다.
* 4. 매개변수를 하나도 선언하지 않을 수 있으며 이때는 선언부의()를 비워둔다.
* 그리고 호출부에도 ()를 비워서 호출한다.
*/
public class MethodExample {
// 메서드는 클래스 내부에 만들어줘야되는건 당연
public static void main(String[] args) {
System.out.println(calcSum());
System.out.println("이번에 획득한 무기: " + randomWeapon());
}
public static int calcSum() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
retrun sum;
}
public static String randomWeapon() {
double d = Math.random();
if(d > 0.66)
return "단검";
else if(d > 0.33)
return "장궁";
else
return "지팡이;
}
}
반환 유형(return type)
/*
* 반환 유형(return type)
* 1.반환값은 메서드를 호출한 곳으로 메서드를 최종 실행 결과를 전달하는 값이다.
* 2. 매개변수는 여러개 존재할 수 있지만 반환값은 오직 하나여야한다.
* 3.return이라는 키워드를 사용하여 return뒤에 전달할 값을 지정한다.
* 4.전달할 값의 데이터 타입을 반환유형이라고 하며 메서드를 선언할 때 메서드 이름 앞에
* 반환유형을 명시해야 한다.
* 5.반환값이 있는 메서드는 호출문이 하나의 값이 되기 때문에 반환된값을 다른 변수에
* 대입할 수도 있고, 다른 메서드의 매개값으로 사용할 수도 있다.
* 6.모든 메서드가 반환값이 필요한 것은 아니다. 메서드 실행 이후에 반환할 값이 없다면 return을
* 사용하지 않아도 된다.
* 7.이 때는 반환유형을 선언시에 비워두면 안되고 반드시 void를 적어줘야한다.
* 8.모든 메서드는 return 키워드를 만나면 강제로 종료된다. 따라서 return문 이하에 코드를 작성할 수 없다.
*/
public static void callMyName(String name) {
System.out.println("내 이름은 " + name);
} //반환값이 없는 함수, 즉 메서드는 void를 적어줘야한다.
int name = callMyName("콩수빈"); // name에 아무것도 들어가지 않는다. 즉 에러 발생.
'IT' 카테고리의 다른 글
1. JSP & HTML 기초 (0) | 2022.08.30 |
---|---|
10. 자바 - 자바 실행파일 만들기 (0) | 2022.08.28 |
6. 자바 - Enhanced for loop문, do~while문 (0) | 2022.08.20 |
5. 자바 - 제어문 (조건문, 반복문) (0) | 2022.08.19 |
4. 자바 - 난수생성, 연산자, 우선순위, 제어문, 배열 (0) | 2022.08.19 |