06
22
728x90

메소드(method)란

객체의 동작(기능)을 말하며 호출해서 실행할 수 있는 중괄호 { } 블록을 말한다.

중괄호 { } 블록은 이름을 가지고 있는데 이것이 메소드 이름이다.

메소드를 호출하면 중괄호 { } 블록에 있는 모든 코드들이 일괄적으로 실행된다.

 

메소드 선언

리턴 타입

메소드가 실행 후 리턴하는 값의 타입

메소드는 리턴값이 있을 수도 있고 없을 수도 있다.

[메소드 선언]
void powerOn() {...}
double divide(int x, int y) {...}

[메소드 호출]
powerOn();
double result = divide(10, 20);

 

메소드 이름

메소드 이름은 자바 식별자 규칙에 맞게 작성하면 되는데, 다음 사항에 주의하면 된다.

1. 숫자로 시작하면 안되고, $와 _를 제외한 특수 문자를 사용하지 말아야 한다.

2. 관례적으로 메소드명은 소문자로 작성한다.

3. 서로 다른 단어가 혼합된 이름이라면 뒤이어 오는 단어의 첫 머리 글자는 대문자로 작성한다.

 

매개변수 선언

매개변수는 메소드가 실행할 때 필요한 데이터를 외부로부터 받기 위해 사용한다.

매개변수의 선언은 옵션이다.

 

매개변수의 수를 모를 경우

[방법 1]
int sum1(int[] values) { }  //호출시 배열이 생성
---------------------------------------
int[] values = { 1, 2, 3 };
int result = sum1(values);
int result = sum1(new int[] {1.2.3.4.5});

[방법2]
int sum2(int ... values) { }  // int가 여러개 들어올 수 있다. / 배열이 생성 x ,호출시 값 목록을 주면됨
----------------------------------------
int result = sum2(1,2,3);
int result = sum2(1,2,3,4,5);

 

예제)

package sec08.exam01_method_declaration;

public class Calculator 
{
	void powerOn()
	{
		System.out.println("전원을 켭니다.");
		
	}
	
	int plus(int x, int y)
	{
		int result = x + y;
		return result; //plus가 result를 결과값으로 리턴
	}
	
	double divide(int x, int y)
	{
		double result = (double)x / (double)y;
		return result;
	}
}
package sec08.exam01_method_declaration;

public class CalculatorExample 
{
	public static void main(String[] args) 
	{
		Calculator myCalc = new Calculator();
		myCalc.powerOn();
		
		int sum = myCalc.plus(10, 20); //메소드 호출
		System.out.println(sum);
		
		byte x = 10;
		byte y = 4;
		//자동 타입 변환으로 byte가 int로 변환되어서 값이 들어감
		double result2 = myCalc.divide(x, y);
		System.out.println(result2);
	}
}

출력 결과

 

예제)

package sec08.exam01_method_declaration;

public class Computer 
{
	int sum1(int[] values)
	{
		int sum = 0;
		for(int i = 0; i<values.length; i++)
		{
			sum += values[i];
		}
		return sum;
	}
	
	int sum2(int ... values)
	{
		int sum = 0;
		for(int i =0; i<values.length; i++)
		{
			sum += values[i];
		}
		return sum;
	}
}
package sec08.exam01_method_declaration;

public class ComputerExample 
{
	public static void main(String[] args) 
	{
		Computer myCom = new Computer();
		
		int[] values1 = {1,2,3};
		
		int result1 = myCom.sum1(values1);
		System.out.println("result1:" + result1);
		
		int result2 = myCom.sum1(new int[] {1,2,3});
		System.out.println("result2:" + result2);
		
		int result3 = myCom.sum2(1,2,3);
		System.out.println("result3:" + result3);
		
		int result4 = myCom.sum2(1,2,3,4,5);
		System.out.println("result4:" + result4);
	}
}

출력 결과

 

728x90
COMMENT