메소드는 코드의 유지 보수를 용이하게 할 수 있도록 코드를 하나로 묶은 함수라고 할 수 있다.
하나로 묶은 코드들을 메서드를 한번 실행하는 것을 통해 간단하게 출력할 수 있다.
기본적으로 Header와 Body로 구분되고, 반드시 외부로부터 호출해야 실행된다.
호출하는 메서드를 부른다고 해서 Caller 메서드, 호출 당해서 작업을 수행하는 메서드를 Worker 메서드라고 한다.
메서드명은 변수명과 같이 식별자 작성 규칙을 적용 받음
-식별자 작성 규칙?
리턴타입은 메서드가 수행 된 후 호출된 곳으로 돌려줄 값의 타입이며,
메서드 정의 시 리턴값이 없을 경우, 리턴타입 생략할 수 있다. 이럴 땐 반드시 void라는 특수 타입을 명시해야 함.
(반드시 하나의 데이터만 리턴 가능하다.)
매개변수?
메서드 호출 시 메서드에게 전달할 값을 저장하는 변수를 선언하는 것일 뿐, 값을 저장할 수는 없다.
main() 메서드도 메서드의 일종이며, 자바 프로그램의 시작과도 같다. 유일하게 자동으로 호출하는 메서드
[제한자] 리턴타입 메서드명([매개변수 선언]){
//메서드가 호출되면 수행할 작업을 기술
[return[값];]
}
메서드의 4가지 분류
1. 매개변수 x, 리턴값 x
2. 매개변수 x, 리턴값 o
3. 매개변수 o, 리턴값 x
4. 매개변수 o, 리턴값 o
1. 매개변수 x, 리턴값 x
-메서드 호출 시 메서드명을 정확하게 지정하고 매개변수에 해당하는 부분에 전달할 데이터를
변수 갯수와 타입에 맞게 지정해야 함.
=> 그러나, 1번은 매개변수가 없으므로 소괄호 안에 아무것도 안 넣어도됨
=> 리턴값도 없으므로 매서드 실행이 끝난 후 흐름이 돌아와서 다음 코드를 실행
=> 리턴값이 없으므로 return문을 쓰지 않고 리턴타입에 void(리턴값이 없다는 의미로 사용되는 특수 데이터) 명시
(1) 호출하기
test_1();
(2) 메서드 정의하기
public static void test_1(){
System.out.println("안녕하세요");
}
2. 매개변수 x, 리턴값 o
-리턴값이 있는 메서드를 호출하면 메서등 종료 후 리턴값이 돌아오므로,
리턴값을 받아서 변수에 저장하거나 출력문 등에서 직접 사용 가능
(1) 호출하기
리턴값으로 받는 데이터타입을 앞에 적어준다
String result = test_2();
System.out.println("올 때 받은 것 : " + result);
결과 = 메로나 출력
(2) 메서드 정의하기
- 매개변수가 없으므로 소괄호 안에 아무것도 안들어감.
- 리턴값이 있으므로, 리턴값에 해당하는 데이터타입을 리턴타입에 적음.
- 리턴값이 있을 경우 반드시 메서드 내에서 return문을 명시하고 return문 뒤에 리턴타입에 해당하는 데이터를
리턴해야 한다.
public static String test_2(){
System.out.println("올때 메로나");
String result = "메로나";
return result;
}
String 타입으로 리턴타입이 명시되어 있으므로 반드시 return 뒤에 String 타입 데이터를 저장해야함.
return "메로나"; 도 가능
3. 매개변수 o, 리턴값 x
(1) 호출하기
매개변수를 소괄호 안에 넣어준다. 매개변수를 money라는 int형 변수로 선언하규
메로나 사러간다. int 형 매개변수가 하나 있으므로 소괄호 안에 int형에 해당하는 데이터(변수 또는 리터럴)을 지정한다.
그래서 메서드 호출 시 정수형 데이터 1200을 전달하게 된당
int money = 1200;
test_3(money);
(2) 메서드 정의하기
public static void test_3(int money){
System.out.println(money + "원으로 메로나 산다")
}
리턴값이 없으므로 리턴타입안에 void가 들어간다. 그리고 소괄호 안에 1200대신에 int money를 넣어준다.
외부에서 메서드 호출 시 전달한 데이터 1200이 int 형 변수 money에 저장됐었고,
int money = 1200; 과 동일함
4. 매개변수 o, 리턴값 o
3,4를 합치장
(1) 호출하기
int money = 1500;
String snack = test_4();
1500원을 줄테니 새우깡으로 바꿔서 와
(2) 메서드 정의하기
public static String test_4(int money){
String result = "새우깡"
return result;
}
'develop > Java' 카테고리의 다른 글
객체지향 - (1) (1) | 2021.02.08 |
---|---|
메소드 method - (2) (0) | 2021.02.04 |
배열(Array) - 2차원 배열 (0) | 2021.01.31 |
무한 루프, do-while, 배열(Array) (0) | 2021.01.27 |
반복문 제어 break, continue (0) | 2021.01.27 |