메소드
- 자바에서는 function과 같은 개념
- 자바는 모든 것이 클래스의 요소이므로 메소드 method라고 부름
메소드의 의미1 반복의 최소화
- 한 번 이상 실행될 수 있는 일련의 작업들을 묶어두는 것.
위에서 메소드의 의미1의 예제를 들어보자
기본 출력문 println()은 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.
반면에, printf()는 지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력할 수 있으므로 이번 예제에서는 printf()사용해봄
%n : 줄바꿈 기능
%f : 소수점 형식으로 출력
double x = 1, y = 2;
System.out.printf("%f + %f = %f%n", x, y, x + y);
System.out.printf("%f - %f = %f%n", x, y, x - y);
System.out.printf("%f * %f = %f%n", x, y, x * y);
System.out.printf("%f / %f = %f%n", x, y, x / y);
x = 3; y = 4;
System.out.printf("%f + %f = %f%n", x, y, x + y);
System.out.printf("%f - %f = %f%n", x, y, x - y);
System.out.printf("%f * %f = %f%n", x, y, x * y);
System.out.printf("%f / %f = %f%n", x, y, x / y);
x = 5; y = 6;
System.out.printf("%f + %f = %f%n", x, y, x + y);
System.out.printf("%f - %f = %f%n", x, y, x - y);
System.out.printf("%f * %f = %f%n", x, y, x * y);
System.out.printf("%f / %f = %f%n", x, y, x / y);
<실행결과>
1.000000 + 2.000000 = 3.000000
1.000000 - 2.000000 = -1.000000
1.000000 * 2.000000 = 2.000000
1.000000 / 2.000000 = 0.500000
3.000000 + 4.000000 = 7.000000
3.000000 - 4.000000 = -1.000000
3.000000 * 4.000000 = 12.000000
3.000000 / 4.000000 = 0.750000
5.000000 + 6.000000 = 11.000000
5.000000 - 6.000000 = -1.000000
5.000000 * 6.000000 = 30.000000
5.000000 / 6.000000 = 0.833333
이 반복적인 작업을 메소드로 만들어보기
반복적으로 일어나는 작업을 add라는이름을 준 메소드에 넣고 묶어놓기.
add를 호출 하고 계산되고 싶은 숫자를 대입하기.
public class Ex01 {
public static void main(String[] args) {
double xx = 3, yy = 4;
add(xx, yy);
xx = 10;
yy = 2;
add(xx, yy);
xx = 7;
yy = 5;
add(xx, yy);
}
static void add (double a, double b) {
System.out.printf("%f + %f = %f%n", a, b, a + b);
System.out.printf("%f - %f = %f%n", a, b, a - b);
System.out.printf("%f * %f = %f%n", a, b, a * b);
System.out.printf("%f / %f = %f%n", a, b, a / b);
}
}
메소드의 의미 2. 값을 받고 연산하여 결과값을 반환 - 함수
add라는 메소드는 과로 안에 두개의 변수를 가지고 있는데 이것을 인자 라고함 num1, num2 이것들을 외부에서 받아온다. 그리고 이 둘을 더한 값을 return에 리턴. return이 없으면 아무것도 반환하지 않음.
1. 2랑3이 각각 num1, num2에 들어가고 num1+num2로 계산되어 return으로 들어가고 int1으로 들어가서 5출력
2. 4랑5가 num1, num2로 들어가서 num1+num2로 계산이 되고 return을 거치고 println(add(4, 5));여기로 리턴이 되서 9출력
3. add(add(6, 7)이 13을 반환하고 add(8, 9));이 17을 반환하면 add(13, 17) add가 실행문으로 들어왔기 때문에 이둘이 합쳐서 30이 결과로 나옴.
int int1 = add(2, 3);
System.out.println(int1);
System.out.println(add(4, 5));
int int2 = add(add(6, 7), add(8, 9));
System.out.println(int2);
static int add (int num1, int num2) {
return num1 + num2;
}
<실행결과>
5
9
30
여기서 알아야 할 점
첫번째 메소들을 예제로 들때는
static void add (double a, double b)라고 작성했지만, 두번째에서는 static int add (int num1, int num2)로 작성하였다.
쓰여지는 의미를 알고 지나가기.
[JAVA] 상속이란? (개념, 클래스 상속, 예제) (0) | 2023.08.27 |
---|---|
[JAVA] 자바 클래스(class) 생성, 선언, 예제 (0) | 2023.08.26 |
[JAVA] 참조 타입 (0) | 2023.08.17 |
[JAVA] 조건문 if문, switch문 (0) | 2023.08.15 |
[JAVA] 변수(선언, 예제) (0) | 2023.08.15 |
댓글 영역