1) 메소드 정의
이름 뒤에 소괄호( )
단, 키워드 뒤에 소괄호는 메소드가 아니다.
클래스 안에서 선언되어야한다.
f ( x ) = 2x+1 => 수학에서의 함수 표현
메소드 매개 = 리턴값 => 자바에서의 명칭
(이름) (변수)
2) 메소드 기능
1. 반복되는 기능이나 코드를 쉽게 관리하기 위해 사용한다.
2. 소스코드 간결화(모듈화의 시작)
3) 메소드 구조
1. 기본 구조
①리턴타입 ②메소드명(③자료형 매개변수1, 자료형 매개변수, ...){
④호출시 실행할 문장
⑤return 리턴값;
}
2.. 구조 설명
① 리턴타입 : 리턴 뒤에 값이 있다면 그 타입에 맞는 자료형을 작성해준다.
리턴값이 없는 경우에는 void로 작성한다.
② 메소드명 : 동사형으로 작성한다. ex) eat("피자") eat("치킨")
③ 자료형 매개변수 : 생략 가능하다. 하지만 생략시에는 외부(사용하는 곳)에서 값을 전달받을 수 없고,
여러 값을 전달받아야할 때에는 ,로 구별하여 값의 개수만큼 선언해준다.
사용시에는 선언된 매개변수의 타입과 개수에 맞게 순서대로 값을 전달해줘야한다.
④ 호출시 실행할 문장 : 생략 가능하다. ④,⑤이 둘다 없는 경우는 없다.
⑤ return 리턴값 : 생략 가능하다. ④,⑤이 둘다 없는 경우는 없다.
4) 메소드 선언 순서
*두 정수의 덧셈 메소드*
1. 메소드명을 생각한다.
void add( ) {
}
2. 매개변수를 생각한다.
void add( int num1, int num2 ) {
}
3. 실행할 문장을 생각한다.
void add( int num1, int num2 ) {
syso("두 정수의 덧셈 메소드!");
int result = num1+num2;
}
4. 리턴값을 생각한다.
void add( int num1, int num2 ) {
syso("두 정수의 덧셈 메소드!");
int result = num1+num2;
return result;
}
5. 리턴타입을 수정한다.
int add( int num1, int num2 ) {
syso("두 정수의 덧셈 메소드!");
int result = num1+num2;
return result;
}
5) 메소드 사용
메소드는 어떤 객체의 행위, 기능을 담당하고
메소드는 클래스 내부에 선언되어있다.
그 메소드가 속해있는 클래스의 타입으로 먼저 변수를 만들어줘야한다.
(객체화를 진행해주어야한다.)
클래스명 변수명 = new 클래스명( );
변수.메소드명( ); ---> 매개변수가 선언되지 않은 메소드는 그대로 사용
변수.메소드명(값1,값2,...); ---> 매개변수의 개수와 타입에 맞게 값을 넘겨줘야한다.
public class MethodTest {
public static void main(String[] args) {
MethodTest m = new MethodTest(); // 객체화 진행
System.out.println(m.f(2)); // m은 객체를 뜻함
System.out.println(m.print("채린공주"));
}
int f(int x) {
return 2 * x + 1;
}
// 내이름 10번 출력하는 메소드
String print(String name) {
String result = "";
for (int i = 0; i < 10; i++) {
result += name+"\n";
}
return result;
}
}
메소드 사용부분은 선언부 마지막에 return값이 있다면 사용한 부분 통째로를
그 리턴값으로 보아야한다. 단, return값이 있다면 절대로 값으로 봐서는 안된다.
6) 리턴(return)의 사용
1. 리턴을 사용해야할 때 :
메소드 내부에서 모든 기능이 구현되지 않을 때
사용하는 부분에서 아직 할 작업이 남았을 때
메소드 기능의 결과를 사용하는 부분에 알려주어야할 때
2. 리턴을 사용하지 않아도 될 때 :
메소드 내부에서 모든 기능이 구현될 때
'Back-End > JAVA' 카테고리의 다른 글
[Java] 다형성(Polymorphism) (0) | 2021.05.24 |
---|---|
[Java] Storage Class(저장 기억 부류), 클래스, 생성자 (0) | 2021.05.24 |
[Java] 2차원 배열[ ] [ ], 2중 for문 (0) | 2021.05.20 |
[Java] 배열(array,[ ]) (0) | 2021.05.18 |
[Java] 기타연산자(break, continue) (0) | 2021.05.17 |