1. 메서드란?
- 프로그램의 함수
- 특정 기능(=연산)을 그룹화 해서 재사용하기 위한 단위
public static void 메서드이름() {
...
}
2. main 메서드
public static void main(String[] args) {
...코드...
}
3. 메서드의 호출
- 정의된 메서드는 다른 메서드를 구성하는{...}안에서 다음의 형식으로 사용될 수 있으며, 이를 메소드를 호출한다 라고 한다.
public static void main(String[] args) {
메서드이름();
}
4. 매서드 파라미터
- JAVA 프로그램의 메서드(=함수)는 자신이 실행되는데 필요한 조건 값을 메소드 이름 뒤의 괄호안에서 변수 형태로 선언한다. 이를 메서드 파라미터(=매개변수)라고 한다.
public static void 메서드이름() {
...코드...
)
5. 다중 파라미터
- 메서드가 연산을 수행하는데 두 개 이상의 파라미터가 필요하다면 콤마(,)로 구분하여 선언할 수 있다.
public static void 메서드이름(변수형 변수이름, 변수형 변수이름, ..., 변수형 변수이름) {
...
}
6. 파라미터를 갖는 메서드의 호출
- 메서드를 정의하면서 파라미터가 명시되어 있다면 해당 메서드를 호출하면서 파라미터를 전달해 주어야 한다.
public static void 메서드이름(변수형 변수이름) {...}
public static void 메서드이름(int num){...}
-> 메서드이름(값)
메서드이름(10)
public static void 메서드이름(int num,boolean user){...}
-> 메서드이름(값1,값2);
메서드이름(65,true);
public static void main(String[] args) {
plus(10, 20);
minus(10, 20);
}
public static void plus(int num1, int num2) {
System.out.println(num1 + num2);
}
public static void minus(int num1, int num2) {
System.out.println(num1 - num2);
}
-> 결과
30
-10
7. 값을 반환하는 메서드
- 메서드의 리턴값
- 메서드가 연산 결과를 자신이 호출된 위치에 반환하는 것을 "리턴"이라고 하며, 반환하는 값을 "리턴값"이락고 한다.
- 메서드 안에서 값을 리턴하기 위해서는 "return"이라는 키어드가 사용된다.
- 값을 리턴하는 메소드는 선언시에 "void" 키워드 대신, 리턴하는 값에 대한 변수형이 명시된다. "void"리턴값이 없다는 의미가 된다.
public static 리턴자료형 메서드이름(변수형 파라미터1, ...) {
...코드...
return 리턴값;
}
public static int plus(int a, int b) {
int result = a + b;
return result;
}
public static void main(String[] args) {
System.out.println(plus(10,20));
int a = plus(20,30);
System.out.println(a);
System.out.println("------------------");
int b = plus(plus(10,20),30);
System.out.println(b);
}
-> 결과
30
50
---------
60
8. 메서드간의 상호 호출
- JAVA의 메서드 역시 서로 호출이 가능하다. 호출된 메서드가 값을 리턴하는 경우, 리턴받은 값을 다른 연산에 사용할 수 있다.
public static 리턴자료형 메서드1(변수형 파라미터1) {
...
return 리턴값1;
}
public static 리턴자료형 메서드2(변수형 파라미터2) {
int k = 메서드1(값1);
return 리턴값2;
}
public static int f1(int x) {
return x + 1;
}
public static int f2(int x) {
return f1(x) + 1;
}
public static void main(String[] args) {
System.out.println(f2(100));
}
-> 결과
102