메서드란?
1.문장들을 묶은 것
2.값을 받아서 처리하고,결과를 반환
반환타입 메서드이름(매개변수) { <= 선언부
메서드 호출시 수행될 문장들 <= 구현부
}
매개변수는 0~n개 가능
return값은 0~1개
int add(int x,int y) {
int result = x+y;
return result;
} //여기서 지역변수는 x,y,result
//return값이 없는 메서드는 void를 붙인다
void int multiply(int x,int y) {
int result = x*y; }
지역변수(lv):메서드 내에서 선언된 변수
lv의 범위는 각 메서드 내이다.
그래서 메서드끼리 lv이름이 같아도 상관없다.
메서드의 장점
메서드 작성
메서드 호출
return문
실행 중인 메서드를 종료하고 호출한 곳으로 돌아간다.
void메서드일때만 생략가능
public class Oop07_method {
public static void main(String[] args) {
//3.메서드 호출
int result1 = m.add(6, 3);
int result2 = m.subtract(6, 3);
int result3 = m.multiply(6, 3);
double result4 = m.divide(6, 3);
m.printGugudan(3);
int result5 = m.max(7,15);
System.out.println("add(6,3)= "+result1);
System.out.println("subtract(6,3)= "+result2);
System.out.println("multiply(6,3)= "+result3);
System.out.println("divide(6,3)= "+result4);
System.out.println("max(7,15)= "+result5);
}
}
//1.클래스 작성(메서드 작성)
class MyMath{
void printGugudan(int dan) {
if(!(2<=dan && dan<=9))//2~9사이가 아니면
return;//입력받은 단이 2~9가 아니면 메서드종료하고 돌아가기
for(int i=1;i<=9;i++) {
System.out.printf("%d * %d = %d%n",dan,i,dan*i);
}
//return; 생략가능 반환타입이 void니까
}
//void아닌 메서드 반드시 리턴값 필요!
int max(int a,int b) {
if(a>b) {
return a;//조건식이 참일때 실행
}else {
return b;//조건식이 거짓일때 실행
}
}
int add(int a,int b) {
int result = a+b;
return result; // = return a+b;
}
int subtract(int a,int b) {
return a-b;
}
int multiply(int a,int b) {
return a*b;
}
double divide(double a,double b) {
return a/b;
}
}