메서드의 대략적인 개념을 배웠다면 메서드를 쓰는 방법을 알아보자.
앞서 말했듯이 메서드=함수, 일련의 과정을 처리해주는 기계이다.
입력값 ------> 메 서 드 ------> 리턴값
* 이때 입력값의 자료형(int면 int, String이면 string) = 리턴값의 자료형(int/String)이어야 한다!
'메서드'는 아래와 같은 구조를 띤다.
리턴자료형 메서드명(매개변수 1, 매개변수 2, ...) {
...
return 리턴값;
}
예시를 들어 보자면
int setSum(int a, int b){ // a ,b는 매개변수 : 메서드로 전달한 값을 저장하는 변수(그릇)
return a + b;
}
여기에서 return은, a+b가 리턴값이 된다는 의미이다. 즉 a와 b를 입력하면 a+b가 return = 리턴 된다는 의미!
출력값(리턴값)은 오직 return에 의해서만 가능하다.
즉 메서드의 출력값을 나타내려면,
'자료형' '리턴값을 받을 변수' = 객체.메서드명(인수1, 인수2 ...)
int result = firstsum.setSum(3, 5)
result = 리턴값을 받을 변수
firstsum = 클래스로 찍어내 new 생성한 객체
setSum = 사용하는 메서드
전체적인 형태를 살펴보자면,
package hakwon3;
class Sum{ // 이 과정을 반복적으로 사용할 것이므로, Sum 클래스로 만들어 둔다.
int a, b;
int setSum(int a, int b){ // a ,b는 매개변수 : 메서드로 전달한 값을 저장하는 변수(그릇)
return a + b;
}
}
public class Practice {
public static void main(String[] args) {
Sum firstsum = new Sum();
// firstsum이라는 'Sum 클래스'의 '객체'를 만들고, setSum '메서드를 사용한다.'
int firstresult = firstsum.setSum(7, 8);
// 7, 8은 인수 : 메서드로 전달할 값(메서드에 직접 대입할 값)
// firstresult가 firstsum 객체를 setSum에 돌려 얻은 return 값, 즉 출력값이다.
Sum secondsum = new Sum();
int secondresult = secondsum.setSum(10, 9);
Sum thirdsum = new Sum();
int thirdresult = thirdsum.setSum(3, 1);
System.out.println(firstresult);
System.out.println(secondresult);
System.out.println(thirdresult);
}
}
이때, 입력값이 없을 수도, 출력값이 없을 수도, 둘 다 없을 수도 있다.
1. 입력값이 없을 때
String Say() {
return ("Hi");
}
Say 메서드는 받는 값이 없다. 그렇지만 사용하면 무조건 "Hi"를 리턴한다.
예시)
package hakwon3;
class Say{
int a, b;
String Nick(/*void*/) {
return ("Hi"); // Nick 클래스는 입력값 없이 "Hi"를 리턴한다.
}
}
public class Practice {
public static void main(String[] args) {
Say firstsample = new Say();
String firstresult = firstsample.Nick();
Say secondsample = new Say();
String secondresult = secondsample.Nick();
System.out.println(firstresult);
System.out.println(secondresult);
}
}
Hi
Hi
2. 리턴값이 없을 때
리턴값은 무조건 return으로 받으므로,
void Sum(int a, int b) {
System.out.println(a+b);
}
라 하여도 retrun 값은 없다. println은 그냥 Sum 안에서 사용하는 문장이지 리턴값이 아니다.
* 리턴값이 없는 메서드는 클래스 자료형을 void라 표기한다.
입력값이 void이기 때문!
To be continued...
'Language > JAVA' 카테고리의 다른 글
| JAVA 객체 (6) - a++ 연습문제 (0) | 2023.07.21 |
|---|---|
| JAVA 객체(5) - 메서드에서 빠져나가기 (0) | 2023.07.21 |
| JAVA 객체(3) - 연습문제 (0) | 2023.07.18 |
| JAVA 객체(2) - 메서드 (0) | 2023.07.18 |
| JAVA 객체(1) - 클래스 (0) | 2023.07.18 |