반환형 메소드명 (자료형 변수명, 자료형 변수명, ...){
명령;
명령;
፧
}
** void 자료형 (무 반환형) : 메소드를 호출하여 얻을 수 있는 결과값이 없는 경우 사용하는 자료형
객체.메소드명 (값, 값, ...);
if (조건식) return;
// 메소드의 반환형을 void로 작성
return 반환값;
// 메소드를 종료하면서 반환값(변수 또는 연산식)을 반환하여 메소드를 호출하는 명령에게 제공
// 메소드의 반환형을 반환값의 자료형과 반드시 같도록 작성
// Method.java
public class Method {
int sumDot(int... array) {
int tot = 0;
for (int num : array) {
tot += num;
}
return tot;
}
}
// MethodApp.java
public class MethodApp {
public static void main(String[] args){
Method method = new Method();
System.out.println("합계 = " + method.sumDot(10, 20, 30));
System.out.println("합계 = " + method.sumDot());
System.out.println("합계 = " + method.sumDot(10, 20));
System.out.println("합계 = " + method.sumDot(10, 20, 30, 40));
}
}
// 합계 = 60
// 합계 = 0
// 합계 = 30
// 합계 = 100
// Method.java
public class Method {
void displayOne() {
System.out.println("Method 클래스의 displayOne() 메소드 호출");
}
void displayTwo() {
System.out.println("Method 클래스의 displayTwo() 메소드 호출");
}
void printOne() {
int tot = 0;
for (int i = 1; i <= 100; i++) {
tot += i;
}
System.out.println("1~100 범위의 정수들의 합계 = " + tot);
}
void printTwo(int num) {
// 매개변수에 저장된 값에 대한 검증
if (num <= 0) {
System.out.println("[에러]매개변수에는 0보다 큰 값이 저장되어야 됩니다.");
return;// 메소드 종료
}
int tot = 0;
for (int i = 1; i <= num; i++) {
tot += i;
}
System.out.println("1~" + num + " 범위의 정수들의 합계 = " + tot);
}
void printThree(int num1, int num2) {
if (num1 > num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
int tot = 0;
for (int i = num1; i <= num2; i++) {
tot += i;
}
System.out.println(num1 + "~" + num2 + " 범위의 정수들의 합계 = " + tot);
}
int returnTot(int num1, int num2) {
int tot = 0;
for (int i = num1; i <= num2; i++) {
tot += i;
}
return tot;
}
// 매개변수로 정수값을 전달받아 홀수와 짝수를 구분하여 반환하는 메소드
// => false 반환 : 홀수, true : 짝수
boolean isOddEven(int num) {
if (num % 2 != 0) {
return false;
} else {
return true;
}
}
int[] returnArray() {
return new int[] { 10, 20, 30, 40, 50 };
}
// 매개변수 3개에 전달된 정수값들의 합계를 계산하여 반환하는 메소드
int sumOne(int num1, int num2, int num3) {
return num1 + num2 + num3;
}
// 매개변수로 배열을 전달받아 배열의 모든 요소값들의 합계를 계산하여 반환하는 메소드
int sumTwo(int[] array) {
int tot = 0;
for (int num : array) {
tot += num;
}
return tot;
}
}
// MethodApp.java
package oop;
// 실행이 목적인 클래스 - main 메소드를 반드시 작성
public class MethodApp {
public static void main(String[] args) {
// 클래스로 객체를 생성하여 객체의 메모리 주소를 참조변수에 저장
// => 같은 패키지에 작성된 클래스는 패키지 표현없이 클래스 사용 가능
// => 참조변수를 사용하여 객체의 필드 또는 메소드 접근 가능
Method method = new Method();
// 참조변수를 출력할 경우 "자료형@메모리주소" 형식의 문자열을 제공받아 출력
System.out.println("method = " + method);
System.out.println("==============================================================");
// 객체를 이용하여 메소드를 호출하면 프로그램의 흐름(스레드)이 객체의 메소드로 이동하여
// 메소드의 명령을 실행하고 메소드가 종료되면 메소드를 호출한 다음 차례의 명령 실행
method.displayOne();
method.displayTwo();
method.displayOne();
System.out.println("==============================================================");
method.printOne();
method.printOne();
System.out.println("==============================================================");
method.printTwo(50);
method.printTwo(80);
method.printTwo(-30);
System.out.println("==============================================================");
method.printThree(35, 79);
method.printThree(19, 88);
method.printThree(67, 12);
System.out.println("==============================================================");
// 반환값이 존재하는 메소드 호출
// => 메소드의 반환값을 지속적으로 사용하고자 할 경우 반환값을 변수에 저장
int result = method.returnTot(30, 70);
System.out.println("합계(메소드 호출의 반환값) = " + result);
// 메소드의 반환값을 일시적으로 사용할 경우 반환값을 변수에 미저장
System.out.println("합계(메소드 호출의 반환값) = " + method.returnTot(20, 80));
System.out.println("==============================================================");
boolean result1 = method.isOddEven(10);
if (result1) {
System.out.println("매개변수로 전달된 값은 [짝수]입니다.");
} else {
System.out.println("매개변수로 전달된 값은 [홀수]입니다.");
}
// 조건식 대신 메소드의 반환값이 이용하여 명령을 선택 실행
if (method.isOddEven(9)) {
System.out.println("매개변수로 전달된 값은 [짝수]입니다.");
} else {
System.out.println("매개변수로 전달된 값은 [홀수]입니다.");
}
System.out.println("==============================================================");
// 배열의 메모리 주소를 반환하는 메소드를 호출하면 반환된 메모리 주소를 참조변수에 저장
// => 참조변수에 저장된 메모리 주소를 사용하여 배열 참조 가능
int[] array = method.returnArray();
for (int num : array) {
System.out.print(num + " ");
}
System.out.println();
System.out.println("==============================================================");
System.out.println("합계 = " + method.sumOne(10, 20, 30));
// 매개변수에 값이 정상적으로 전달되지 않을 경우 메소드 호출에 대한 에러 발생
// System.out.println("합계 = "+method.sumOne());
// System.out.println("합계 = "+method.sumOne(10,20));
// System.out.println("합계 = "+method.sumOne(10,20,30,40));
System.out.println("==============================================================");
// System.out.println("합계 = "+method.sumTwo(10, 20, 30));//에러 발생
// 매개변수의 배열의 메모리 주소를 전달하여 메소드 호출
System.out.println("합계 = " + method.sumTwo(new int[] { 10, 20, 30 }));
System.out.println("합계 = " + method.sumTwo(new int[] {}));
System.out.println("합계 = " + method.sumTwo(new int[] { 10, 20 }));
System.out.println("합계 = " + method.sumTwo(new int[] { 10, 20, 30, 40 }));
System.out.println("==============================================================");
}
}
// method = oop.Method@3b6eb2ec
//===========================================================
// Method 클래스의 displayOne() 메소드 호출
// Method 클래스의 displayTwo() 메소드 호출
// Method 클래스의 displayOne() 메소드 호출
// =============================================================
// 1~100 범위의 정수들의 합계 = 5050
// 1~100 범위의 정수들의 합계 = 5050
// =============================================================
// 1~50 범위의 정수들의 합계 = 1275
// 1~80 범위의 정수들의 합계 = 3240
// [에러]매개변수에는 0보다 큰 값이 저장되어야 됩니다.
// =============================================================
// 35~79 범위의 정수들의 합계 = 2565
// 19~88 범위의 정수들의 합계 = 3745
// 12~67 범위의 정수들의 합계 = 2212
// =============================================================
// 합계(메소드 호출의 반환값) = 2050
// 합계(메소드 호출의 반환값) = 3050
// =============================================================
// 매개변수로 전달된 값은 [짝수]입니다.
// 매개변수로 전달된 값은 [홀수]입니다.
// =============================================================
// 10 20 30 40 50
// =============================================================
// 합계 = 60
// ============================================================
// 합계 = 60
// 합계 = 0
// 합계 = 30
// 합계 = 100
// ============================================================