본문 바로가기

develop/Java

메소드 method -(1)

메소드는 코드의 유지 보수를 용이하게 할 수 있도록 코드를 하나로 묶은 함수라고 할 수 있다. 

하나로 묶은 코드들을 메서드를 한번 실행하는 것을 통해 간단하게 출력할 수 있다. 

기본적으로 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