독립적인 처리자
method -> class에 소속되어 있는 함수
클래스(class) 밖에서 선언되면 함수, 클래스 안에서 선언이 되면 메소드
자바에서는 모든 함수가 클래스 내부에서 선언되기 때문에 메소드만이 존재
return값 함수명(parameters, , ,) {
처리
return 값;
}
functionName(); // 함수 호출
functionOne(25);
String s =functionTwo();
System.out.println(s);
static void functionName() { // 들어가는 값, 나오는 값이 없는 함수 -> void
System.out.println("functionName 호출");
}
static void functionOne(int n) { // n -> parameter -> 매개변수
System.out.println("functionOne 호출 n = " + n);
}
static String functionTwo() {
String str = "hello";
return str;
}
// console
/*
functionName 호출
functionOne 호출 n = 25
hello
*/
객체의 기능을 구현하기 위해서 클래스 내부에 구현되는 함수. 함수와 같음
1. 문장들을 묶어놓은 것(작업단위)
2. 값(입력)을 받아서 처리하고 결과를 반환(출력)
장점
메서드의 작성
: 크게 선언부(header)
와 구현부(body)
로 이루어짐. 함수(function)와 동일
선언부
구현부
{}
안에 작성). 지역변수입력값은 여러개가 가능하지만, 출력값은 딱 하나만 가능
반환값이 없는 경우, 반환타입 : void
반환타입 메서드이름 (타입 변수명, 타입 변수명, ..) {
// 메서드 호출시 수행될 코드
}
int result add(3, 5); // 메서드 호출. 3,5는 인자(argument) or 인수
int result add(1.0, 2, 3); // 에러. 메서드에 선언된 매개변수의 개수와 타입이 일치해야함
int add(int a, int b) {
int result = a + b; // 지역변수
return result // 하나의 값만 반환. 반환타입과 일치하거나 자동 형변환이 가능한 것
}
MyMath mm = new MyMath();
long result1 = mm.add(5L, 3L);
long result2 = mm.substract(5L, 3L);
long result3 = mm.multiply(5L, 3L);
double result4 = mm.divid(5L, 3L); // long값이 자동형변환
System.out.println("add(5L, 3L) = " + result1);
System.out.println("substract(5L, 3L) = " + result2);
System.out.println("multiply(5L, 3L) = " + result3);
System.out.println("divid(5L, 3L) = " + result4);
class MyMath {
long add(long a, long b) {return a + b;}
long substract(long a, long b) {return a - b;}
long multiply(long a, long b) {return a * b;}
double divid(double a, double b) {return a / b;}
}
// console
/*
add(5L, 3L) = 8
substract(5L, 3L) = 2
multiply(5L, 3L) = 15
divid(5L, 3L) = 1.6666666666666667
*/