: 하나의 기능을 구현하는 일련의 코드
: 클래스 안에 속해있는 함수
⇒ Java의 함수는 따로 존재하지 않고, 클래스 내에 메소드로 존재
리턴자료형 함수명(자료형 파라미터, ..) { // header
처리코드 // body
return 값;
}
cf) 리턴값이 없는 경우 header 리턴자료형에 void
를 적음
static void main(String[] args) {
int n = 2;
newfunc(n);
int arrNum[] = functwo();
System.out.println(Arrays.toString(arrNum));
}
static void newfunc(int n){
System.out.println("newfunc n = " + n);
}
static int[] functwo(){
int number[] = {1, 2, 3};
return number;
}
- 매개변수(parameter)
: 함수 정의 시, 함수 내부에서 사용할 수 있게 전달된 값을 받는 변수- 인수(argument)
: 함수를 호출할 때 전달하는 입력값
1. Overloading
: 함수명은 같고, 매개변수의 갯수나 자료형이 다른 함수를 정의하는 것
(리턴값은 상관없으며, 매개변수로 구분함)
public static void main(String[] args) {
func();
func('c');
func('c', 3);
}
static void func() {
System.out.println("func() 호출");
}
static void func(char c) {
System.out.println("func(char) 호출");
}
static void func(char c, int i) {
System.out.println("func(char, int) 호출");
}
2. 가변인자(variable arguments) 사용
: 컴파일 시 배열로 처리됨
public static void main(String[] args) {
System.out.println(sum(1));
System.out.println(sum(1, 2, 3, 4, 5));
}
static int sum(int...number) {
int sumNumber = 0;
for (int i = 0; i < number.length; i++) {
sumNumber += number[i];
}
return sumNumber;
}