반응형
retrurn
해당 메소드를 종료하고 자신을 호출 한 메소드로 돌아가는 예약어.
반환 값(리턴 값)을 가지고 자신을 호출 한 메소드로 돌아갈 수 있음
return은 가장 마지막에 작성해야 하고, 마지막에 작성되지 않을 경우 컴파일 에러를 발생시킴.
void 메소드의 경우 return;을 명시작으로 작성하지 않아도 컴파일러가 자동으로 추가 해줌.
● public 뒤에 바로 return으로 가지고 갈 타입을 명시한다.
● 아무 값도 리턴하지 않을 경우에는 void, 값을 반환하는 경우에는 반환 값의 자료형으로 작성한다.
public String testMethod(){
return 리턴값 ;
}
매개변수와 리턴 값 복합 활용
- 매개변수도 존재하고 리턴값도 존재하는 메소드를 이용하여 간단한 계산기를 만들어 보자.
public static void main(String[] args) {
int first = 100;
int second = 10;
Application7 app7 = new Application7();
System.out.println("두 수를 더한 결과 : " + app7.plusTwoNumbers(first, second));
System.out.println("두 수를 뺀 결과 : " + app7.minusTwoNumbers(first, second));
System.out.println("두 수를 곱한 결과 : " + app7.multipleTwoNumbers(first, second));
System.out.println("두 수를 나눈 결과 : " + app7.divideTwoNumbers(first, second));
}
public int plusTwoNumbers(int first, int second) {
return first + second;
}
public int minusTwoNumbers(int first, int second) {
return first - second;
}
public int multipleTwoNumbers(int first, int second) {
return first * second;
}
public int divideTwoNumbers(int first, int second) {
return first / second;
}
}
● 실행 결과
두 수를 더한 결과 : 110
두 수를 뺀 결과 : 90
두 수를 곱한 결과 : 1000
두 수를 나눈 결과 : 10
static 메소드 호출
- static 메소드를 호출하는 방법 : 클래스명. 메소드명();
public static void main(String[] args) {
System.out.println("20과 30의 합 : " + Application8.sumTwoNumbers(20, 30));
}
public static int sumTwoNumbers(int first, int second) {
return first + second;
}
- 동일한 클래스 내에 작성 된 static 메소드는 클래스명 생략이 가능하다.
public class Application8 {
public static void main(String[] args) {
System.out.println("20과 30의 합 : " + sumTwoNumbers(20, 30));
}
public static int sumTwoNumbers(int first, int second) {
return first + second;
}
다른 클래스에 작성한 메소드 호출
public class Calculator {
public int minNumberOf(int first, int second) {
return first > second ? second : first;
}
public static int maxNumberOf(int first, int second) {
return first > second ? first : second;
}
- non -static 메소드 호출
클래스명 사용할 이름 = new 클래스명();
사용할이름.메소드명();
public class Application9 {
public static void main(String[] args) {
int first = 100;
int second = 150;
Calculator calc = new Calculator();
int min = calc.minNumberOf(first, second);
System.out.println("두 수 중 최소값은 : " + min);
}
● 실행결과
두 수 중 최소값은 : 100
- static 메소드 호출
다른 클래스에서 작성 된 static 메소드의 경우 호출할 때 클래스명을 반드시 기술해야 한다.
public class Application9 {
public static void main(String[] args) {
int first = 100;
int second = 150;
Calculator calc = new Calculator();
int max = Calculator.maxNumberOf(first, second);
System.out.println("두 수 중 최대값은 : " + max);
}
● 두 수 중 최대값은 : 150
- static 메소드도 non-static 메소드처럼 호출은 가능하지만 권장하지 않는다. 이미 메모리에 로딩 되어 있는 static 메소드는 여러 객체가 공유하게 되는데그 때 객체로 접근하게 되면 인스턴스가 가진 값으로 공유 된 값에 예상치 못하는 동작을 유발할 수 있기 때문에사용을 제한해달라는 경고이다.
반응형
'프로그래밍 > java' 카테고리의 다른 글
[자바JAVA] API (절대값, 최소값, 최대값, 원주율, 난수, nextInt 활용) (0) | 2022.07.04 |
---|---|
[자바JAVA] 패키지 (package) & 임포트 (import) (0) | 2022.07.04 |
[자바JAVA] 메소드(method) _ 전달인자와 매개변수를 이용한 호출 (0) | 2022.07.02 |
[자바 JAVA] 연산자 ( 산술, 복합 대입, 증감, 비교, 논리, 삼항) (0) | 2022.06.29 |
[자바 JAVA] 오버플로우/ 언더플로우 / 자동형변환 / 강제형변환 (0) | 2022.06.27 |