메소드(Method) 알아보기
- 매개변수와 인수
- 메소드의 구조
- return의 기능
매개변수와 인수
매개변수란 메소드를 생성할 때 꼭 입력받도록 선언해둔 변수를 의미를 합니다. 인수는 메소드를 사용할 때 입력받도록 되어 있던 값을 넣기 위해 사용하는 값입니다. 예시를 통하여 자세히 설명드리겠습니다.
public class AddCalculation {
public int sum(int a, int b){// sum을 사용할 때 int형 변수가 두개가 필요합니다.
int result = a+b;//a와 b가 매개변수입니다.
return result;
}
public static void main(String[] args) {
AddCalculation add = new AddCalculation();
int sum= add.sum(4,5);//메소드를 사용할 때 입력된 값을 인수라고 합니다.
System.out.println(sum); //인수 4와 5의 합인 9가 출력됩니다.
}
}
위의 예시에서 sum이라는 메서드를 작성할 때 int a, int b를 작성하여 int형인 매개변수가 2개가 필요하다고 작성하였습니다. 이제 sum이란 메소드를 사용할 때 int형의 값을 2개 입력해야 합니다. 따라서 4와 5를 main함수에서 사용하였는데 이 값을 인수라고 합니다.
메소드의 구조
메소드는 함수이므로 매개변수라는 입력받는 값과 결과를 통하여 결과 값이라는 출력되는 값이 있습니다. 이 점을 유의하시며 메소드를 작성해야 합니다.
접근제어자 결과자료형 메소드이름 (입력자료형 매개변수){
메소드 내용
return 결과값;
}
메소드의 구조는 간략히 위와 같습니다. 이러한 구조에서 입력 값의 유무나 결과값의 유무로 4가지로 분류가 됩니다.
입력이 없고 출력이 없는 메소드 예시
public void warning(){
System.out.println("경고! 잘못 입력하셨습니다");
}
위의 예시처럼 입력이 없는 경우 매개변수를 선언하는 위치를 비워두시면 됩니다. 메소드를 실행하면 경고문구만 출력이 되고 특정한 결과 값이 없는 경우 return을 사용하지 않고 결과자료형은 void로 작성하시면 됩니다.
입력이 있고 출력이 없는 메소드 예시
public void shoolName(int age){
if(age<8){
System.out.println("입학을 안하였습니다.");
}
else if(age<=13){
System.out.println("초등학생입니다.");
}
else if(age<=16{
System.out.println("중학생입니다.");
}
else if(age<=19){
System.out.println("고등학생입니다.");
}
else{
System.out.println("성인입니다.");
}
}
위의 예시처럼 입력은 있고 출력이 없는 경우 출력 값의 자료형은 void로 사용하고 입력받을 매개변수와 자료형을 입력해주시면 됩니다.
입력이 없고 출력이 있는 메소드 예시
public double inputPI(){
double PI=3.14;
return PI;
}
위의 예시는 입력은 없기에 매개변수는 적지 않고 결과 값의 자료형을 적어줍니다. 이러한 메소드를 사용하는 경우는 메소드의 출력값을 다른 변수에 입력해주거나 연산을 할 때 사용할 수 있는데 사용방법은 아래와 같이 사용합니다.
변수이름 = 객체이름.PI();
이러한 식으로 어떠한 변수의 값을 입력해주기 위하여 사용합니다.
입력이 있고 출력이 있는 메소드 예시
public String jodName(int a){ // -> (접근제어자) (결과값자료형) (메소드이름)((자료형 매개변수))
String job;
switch(a)
case 0 : job="전사";
break;
case 1 : job="궁수";
break;
case 2 : job="마법사";
break;
default : job="잘못 입력되었습니다.";
return job;
}
위의 예시를 보았을 때 입력은 정수로 받을 것이기 때문에 int a로 매개변수를 선언하였고 결과 값은 문자열이기 때문에 String형이 되었습니다.
return의 기능
return은 결과 값을 출력할 때 사용하였습니다. 하지만 잘 활용한다면 반복문에서 break처럼 사용도 가능합니다.
public class Num {
public void addNum(int a) {
if (a<=0) {
return;
}
System.out.println("자연수 " + a + "가 입력되었습니다.");
}
public static void main(String[] args) {
Num num = new Num();
num.addNum(5);//"자연수 5가 입력되었습니다."가 출력
num.addNum(-1);//아무것도 출력되지 않습니다.
}
}
위의 예시와 같이 return뒤에 어떠한 값도 입력하지 않는다면 메소드는 그냥 종료가 됩니다. 마치 반복문에서 break를 만난 경우와 비슷합니다. 특정한 조건에서만 메시지가 나타나도록 하는 방법이었습니다.