남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
메서드
- 작업단위로 문장들을 묶은 것
- 값(입력)을 받아서 처리하고, 결과를 반환(출력)
메서드의 장점
- 코드의 중복을 줄일 수 있음
- 코드의 관리가 쉬움
- 코드 재사용 가능
- 코드가 간결해서 이해하기 쉬움
메서드의 작성
- 반복적으로 수행되는 여러 문장을 메서드로 작성
- 하나의 메서드는 한가지 기능만 수행하도록 작성
메서드 = 선언부 + 구현부
반환타입 메서드 이름 (타입 변수명, 타입 변수명...) // 선언부
{
// 메서드 호출시 수행될 코드 // 구현부
}
메서드 구현부
지역변수 (Local variable) : 메서드 내에 선언된 변수
int add(int x, int y) {
int result = x + y;
return result;
}
int multiply(int x, int y) {
int result = x * y;
return result;
}
* 지역변수는 메소드 안에서만 사용하기 때문에 서로 다른 메소드 영역에서는 이름이 같아도 OK
* 매개변수도 지역변수
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
class Ex6_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyMath mm = new MyMath();
long result1 = mm.add(5L,3L);
long result2 = mm.substract(5L,3L);
long result3 = mm.multiply(5L,3L);
double result4 = mm.divide(5L,3L);
long result5 = mm.max(5L,3L);
System.out.println("add(5L+3L) = " + result1 );
System.out.println("substract(5L+3L) = " + result2 );
System.out.println("multiply(5L+3L) = " + result3 );
System.out.println("divide(5L+3L) = " + result4 );
System.out.println("max(5L+3L) = " + result5 );
}
}
class MyMath { // 메서드는 클래스 영역 안에서만 정의 가능
long add(long a, long b) {
long result = a +b ;
return result;
}
long max(long a, long b) {
return (a>b? a : b);
}
long substract(long a, long b) {
return a -b;
}
long multiply(long a, long b) {
return a * b;
}
double divide(double a, double b) {
return a / b;
}
}
|
cs |
출력
add(5L+3L) = 8
substract(5L+3L) = 2
multiply(5L+3L) = 15
divide(5L+3L) = 1.6666666666666667
max(5L+3L) = 5
메서드의 호출
메서드이름(값1, 값2,....) ; // 메서드 호출
print99danAll(); // void print99danAll() 호출
int result = add(3,5); // int add(int x, int y) 를 호출하고 , 결과를 result에 저장
return문
- 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다.
1
2
3
4
5
6
7
8
9
10
11
12
|
void printGuGudan(int dan){
if(!( 2<= dan && dan<=9))
return; // dan의 값이 2~9가 아닌 경우, 호출한 곳으로 되돌아감
for(int i = 1; i<9; i++) {
System.out.printf("%d * %d = %d%n", dan, i , dan * i) ;
}
return; //반환타입이 void 이므로 생략가능 , 안쓰면 컴파일러가 자동 추가
}
|
cs |
* 반환타입이 void가 아닌 경우, 반드시 return 필요
반환값
- 반환타입이 void가 아닐 때 return 뒤에 반환 값을 반드시 작성!
- 반환타입과 return 뒤의 값의 타입이 일치하여야 함!
'프로그래밍 > JAVA' 카테고리의 다른 글
자바의 정석 기초 ( 생성자 (constructor)/ 생성자 규칙 / 기본 생성자 (default constructor ) / 매개변수가 있는 생성자 ) (0) | 2020.07.09 |
---|---|
자바의 정석 기초 ( static 메서드 / instance 메서드 ) (0) | 2020.07.08 |
자바의 정석 기초 ( 클래스 정의 / 클래스 선언 위치에 따른 변수 종류 / 클래스 변수 / 인스턴스 변수 / 지역변수 ) (0) | 2020.07.07 |
자바의 정석 기초 ( 객체의 생성 / 객체의 사용 / 객체 배열 ) (0) | 2020.07.06 |
자바의 정석 기초 ( 객체지향언어 / 클래스 / 객체 / 인스턴스 ) (0) | 2020.07.01 |
댓글