타 함수의 function과 같은 개념
자바는 모든 것이 클래스의 요소이므로 메소드 method라 부름.

💡 자바의 메소드는 하나의 값만 반환 가능 ->여러 값을 반환하려면 배열 또는 객체 사용!
// 💡 ... 연산자 : 해당 위치 뒤로 오는 연산자들을 배열로 묶음
// int[] (배열 자체를 받음)과는 다름!
static double getAverage(int... nums) {
double result = 0.0;
for (int num : nums) {
result += num;
}
return result / nums.length;
}
int[] numbers = {3, 91, 14, 27, 4};
double avgOfArr = getAverage(numbers);
⭐️ 다른(정해진) 인자들과 사용시 맨 마지막에 놓을 것
static String descClass (int classNo, String teacher, String... kids) {
return "%d반의 담임은 %s 선생님, 원생들은 %s 입니다."
.formatted(classNo, teacher, String.join(", ", kids));
}
String class3Desc = descClass(3, "목아진", "짱구", "철수", "훈이");
String[] kids = {"짱구", "철수", "훈이"};
String class3DescByArr = descClass(3, "목아진", kids);
같은 메소드 이름, 다른 매개변수
다른 자료형의 값들로 같은 성질의 작업을 정의할 때
static int add(int a, int b) { return a + b; }
// 매개변수의 개수가 다름
static int add(int a, int b, int c) { return a + b + c; }
// 매개변수의 자료형이 다름
static double add(double a, double b) { return a + b; }
// 매개변수의 자료형 순서가 다름
static String add(String a, char b) { return a + b; }
static String add(char a, String b) { return a + b; }
// ⚠️ 반환 자료형이 다른 것은 오버로딩 안 됨 - 다른 함수명 사용
// static double add(int a, int b) { return (double) (a + b); }