//dan1, dan2를 args(인자)로 만들어 구구단 구현(method)
public class MethodEx3{
public static void methodA(int dan1, int dan2){ //반환값이 없는 methodA 생성 및 인자 int a, int b 정의
for(int j = dan1; j<=dan2; j++){
for(int i=1; i<=9; i++){
System.out.println(j + " * " + i + " = " + (j * i));
}
System.out.println();
}
}
public static void main(String[] args){
methodA(2, 7); //인자 2, 7 전달 및 호출
}
}
int dan1, int dan2에 각각 2와 7을 전달하여 2단부터 7단까지 구구단을 출력.
문제) 주어진 배열값 중 홀수단(구구단 홀수)을 출력하시오.
public class MethodEx4{
public static void main(String[] args){
int[] array = {2, 5, 7, 3};
method(array); //메소드 호출
}
public static void method(int[] array){
for(int i=0; i<array.length; i++){ //배열 array의 길이만큼 반복
for(int j=1; j<10; j++){
if(array[i] % 2 != 0){ //홀수만 출력하기 위해 2로 나눴을 때 0이 아닌 것 선별
System.out.print(array[i] + " * " + j + " = " + (array[i]*j));
}
}System.out.println();
}
}
}
//메소드 기본 예제
public class MethodEx{
public static int sum(int a, int b){ //메서드 sum 생성 및 매개변수(int a, int b)정의
return a+b; //return 값을 a+b로 구현
}
public static void main(String[] args){
int result = sum(10, 10); //int result란 변수에 메소드sum과 매개변수 각각 10씩 정의
System.out.println("메소드 sum 호출 : "+result); //메소드 sum출력
}
}
sum이라는 메소드를 만들어서 매개변수(인자)를 각각 int a, int b로 주고
return값을 a+b로 구현하였고 main에서 메서드 sum을 호출하는데 인자를 각각 10,10 씩 정의하여 result가 20이 출력되는 것을 확인할 수 있다.
//메소드 기본 예제2
public class MethodEx2 {
public static void methodA(){ //반환값(return)이 있는 메소드methodA 생성
int sum = 0;
for(int i=1; i<=10; i++){ //1부터 10까지의 합
sum += i; //결과를 sum에 저장
}
System.out.println("결과1 : " + sum);
}
public static void methodB(){ //반환값(return)이 없는 메소드 methodB 생성
int sum = 0;
for(int i=1; i<=10; i++){ //똑같이 1부터 10까지의 합을 sum에 저장
sum += i;
}
return sum; //sum값을 반환
}
public static void main(String[] args){
methodA(); //methodA를 호출
int sum = methodB(); //methodB를 호출
System.ou.println("결과2 : " + sum);
}
}
리턴값이 있냐 없냐에 따라 메소드를 호출하는 방법이 조금 다르다.
먼저 methodA( ) 메소드는 리턴값이 없기 때문에 변수에 저장할 내용이 없다. 그래서 단순히 메소드만 호출하면 되고 methodB( )는 1부터 10까지의 합인 55를 리턴하므로 이것을 저장할 변수가 필요하다. 리턴값을 받기 위해 메소드의 리턴 타입인 int 타입으로 sum을 선언하여 methodB( )를 호출한다.
메소드(method)는 객체의 동작에 해당하는 중괄호 블록 { }을 말한다. 이 중괄호 블록이 가지는 이름이
바로 메소드 이름이다.
메소드를 호출하게 되면 중괄호 블록에 있는 코드들이 실행된다. 이 메소드는 외부로부터 매개값을 받을 수도 있고,
실행 후 어떤 값을 리턴할 수도 있다.
//메소드 선언
[접근 제어자][수정자][반환형] 메소드 명 (매개변수) {
실행 구문(구현);
}
*접근 제어자(Modifies)
: private, default(friendly), protected, public
*수정자
: static, final, abstract, native....
*반환형(return type)
: 자바 데이터 자료형(기본형, 참조형)전부 사용할 수 있음.
: void - 반환형이 없는 메소드 정의시 사용.
*메소드명 : 식별자로 임의의 이름 정의.
*인자(Arguments) : 매개 변수라고하며 메소드 호출시 데이터를 전달하기 위한 용도로 사용.
//메소드 표현
표현1)
public void int intA() {
구현;
return n; //n -> int 기본 자료형에 맞는 데이터 변환
}
표현2)
public void int intB(int a, ....){
구현;
//void는 retrun구문을 사용하지 않음
}
메소드를 사용하면 기존의 복잡한 코드를 분리함으로써 메소드의 기능 그리고 코드의 복잡성을 줄일 수 있고