자바는 클래스 내의 함수를 메소드라고 부른다.
* 함수와 메소드가 공존하는 언어(ex. 파이썬)과 같은 경우는 두 개를 구분하여 말하기도 하지만, 자바에서는 두 가지를 구분하여 말하지 않는다. 다만 자바에서 사용되는 함수의 정확한 명칭은 메소드이다.
int sum(int a, int b) {
return a+b;
}
위 메소드의 의미는 다음과 같이 정의된다.
"sum 메소드는 입력값으로 두개의 값 (int 자료형 a,b)를 받아 리턴 값은 두 개의 입력 값을 더한 값 (int 자료형)"이다.
매개변수와 인수
public class Sample {
int sum(int a, int b) { // a, b 는 매개변수
return a+b;
}
public static void main(String[] args) {
Sample sample = new Sample();
int c = sample.sum(3, 4); // 3, 4는 인수
System.out.println(c); // 7 출력
}
}
매개변수(parameter)은 메소드에 입력으로 전달된 값을 받는 변수를 의미,
인수 (arguments)는 메소드를 호출할 때 전달하는 입력 값을 의미한다.
메소드의 구조
리턴자료형 메소드명(입력자료형1 매개변수1, 입력자료형2 매개변수2, ...) {
...
return 리턴값;
// 리턴자료형이 void 인 경우에는 return 문이 필요없다.
}
자바의 메소드 구조는 위와 같다.
메소드의 리턴 값은 return이라는 명령을 사용한다.
메소드는 입출력 유무에 따라 다음과 같이 4가지로 분류할 수 있다.
- 입력과 출력이 모두 있는 메소드
- 입력과 출력이 모두 없는 메소드
- 입력은 없고 출력은 있는 메소드
- 입력은 있고 출력은 없는 메소드
일반적인 메소드
입력 값이 있고 리턴 값이 있는 메소드가 일반적이다.
public class Sample {
int sum(int a, int b) {
return a+b;
}
public static void main(String[] args) {
Sample sample = new Sample();
int result = sample.sum(3, 4); // 리턴 값 받을 변수 = 객체.메소드명(입력인수1,입력인수2)
System.out.println(result);
}
}
//출력 값 7
- 입력 값 - int 자료형 a, int자료형 b
- 리턴 값 - int자료형
입력 값이 없는 메소드
public class Sample {
String say() {
return "Hi";
}
public static void main(String[] args) {
Sample sample = new Sample();
String a = sample.say(); // 리번값받을 변수 = 객체.메소드명()
System.out.println(a); // "Hi" 출력
}
}
- 입력 값 - 없음
- 리턴 값 - String 자료형
리턴 값이 없는 메소드
public class Sample {
void sum(int a, int b) {
System.out.println(a+"과 "+b+"의 합은 "+(a+b)+"입니다.");
}
public static void main(String[] args) {
Sample sample = new Sample();
sample.sum(3, 4); //객체.메소드명 (입력인수1, 입력인수2)
}
}
리턴 값이 없는 메소드는 명시적으로 리턴 타입 부분에 "void" 라고 표기한다.
- 입력 값 - int 자료형 a, int자료형 b
- 리턴 값 - void (없음)
입력 값도 리턴 값도 없는 메소드
public class Sample {
void say() {
System.out.println("Hi");
}
public static void main(String[] args) {
Sample sample = new Sample();
sample.say(); // 객체.메소드명()
}
}
- 입력 값 - 없음
- 리턴 값 - void (없음)
reference
점프 투 자바 | 박응용