청소라는 과정을 예로 들겠다. 청소기를 돌리고, 걸레질을 하고, 월,수,금은 분리수거 날이니 쓰레기를 내다버리고(조건문에 속하겠다). 이 모든 과정을 우린 통틀어 '청소'라고 말한다. 만약 청소란 단어로 묶어서 말하지 않는다면, 우린 친구3명에게 청소라는 과정을 하라고 말할때 "청소기 돌리고, 걸레질하고, 분리수거해"라고 장황하게 3번 말해야할것이다.
컴퓨터가 발명된 이유가 무엇인가? 편리하고 효율적으로 살기 위해서다. 장황한건 편리하고 효율적인것과 거리가 멀다. 여러 구문들을 묶어서 간결하게 사용할 수 있는 '메서드'란 것이 필요한 것이다.
public static void 메서드이름() {
... 수행할 연산식 ...
}
메서드이름();
Main01 - f = x + 1 을 표현하는 메서드 만들기
public class Main01 {
public static void main(String[] args) {
// 여러번 사용이 가능하다.
f();
f();
}
public static void f() {
int x = 100;
int y = x + 1;
System.out.println(y);
}
}
f(); 만 언급해도 출력이 되는건 출력 구문을 포함하고 있기 때문이다.
public static void 메서드이름( 변수형 변수이름 ) {
...
}
public static void 메서드이름( 변수형 변수이름, 변수형 변수이름 ) {
...
}
파라미터를 갖는 함수의 사용 : 파라미터가 명시된 함수를 사용할 경우, 다음과 같이 괄호안에 파라미터에 해당하는 값을 전달해 준다.
f(x,y) = x + y + 1 / f(1,2) / 결과값 : 4
파라미터를 갖는 메서드의 호출 : 메서드를 정의하면서 파라미터가 명시되어 있다면 해당 메서드를 호출하면서 파라미터를 전달해 주어야 한다.
public static void 메서드이름( 변수형 변수이름, 변수형 변수이름 ) {
...
}
메서드이름(값1, 값2);
Main02 - 파라미터를 전달받는 메서드
public class Main02 {
public static void main(String[] args) {
// 파라미터를 전달받는 메서드
f1(100);
f2(10,20);
}
public static void f1(int x) {
int y = x + 1;
System.out.println(y);
}
public static void f2(int x, int y) {
int z = x*x + y + 1;
System.out.println(z);
}
}
함수의 결과값 = 메서드의 리턴값
public static 리턴형 메서드이름(변수형 파라미터1, ..., 변수형 파라미터n ) {
return 리턴값;
}
Main03 - 리턴값의 사용
public class Main03 {
public static void main(String[] args) {
// 메서드의 리턴값을 변수에 저장
int a = f1(100);
System.out.println(a);
// 리턴값을 출력에 사용
System.out.println(f2(10));
}
public static int f1(int x) {
int y = x + 1;
return y;
}
public static int f2(int x) {
return x*x + 1;
}
}
두 개의 함수를 연립하여 사용하기
메서드간의 상호 호출
public static 리턴형 메서드1이름(변수형 파라미터1, ..., 변수형 파라미터n) {
return 리턴값;
}
public static 리턴형 메서드2이름(변수형 파라미터1, ..., 변수형 파라미터n) {
int k = 메서드1이름(파라미터1, ..., 파라미터n); //다른 메서드 호출
return k;
}
Main04 - 다른 메서드를 호출하는 메서드
public class Main04 {
public static void main(String[] args) {
// 다른 메서드를 호출하는 메서드
// f1()은 f2()를 호출하고 있다.
System.out.println(f2(100));
}
public static int f1(int x) {
return x + 1;
}
public static int f2(int x) {
// 다른 메서드의 호출
return f1(x) + 1;
}
}
이 포스트는 itpaper.co.kr에서 제공되는 강의자료를 바탕으로 작성되었습니다.