Back-End/JAVA

[Java] 메소드(method)

챌링킴 2021. 5. 21. 19:53
반응형

1) 메소드 정의

이름 뒤에 소괄호( )

단, 키워드 뒤에 소괄호는 메소드가 아니다.

클래스 안에서 선언되어야한다.

   f        ( x )   =    2x+1   => 수학에서의 함수 표현

메소드   매개   =   리턴값  =>  자바에서의 명칭

(이름)   (변수)

 

2) 메소드 기능

1. 반복되는 기능이나 코드를 쉽게 관리하기 위해 사용한다.

2. 소스코드 간결화(모듈화의 시작)

 

3) 메소드 구조

1. 기본 구조

리턴타입메소드명(③자료형 매개변수1, 자료형 매개변수, ...){

            ④호출시 실행할 문장

            ⑤return 리턴값;

}

 

2.. 구조 설명

리턴타입 : 리턴 뒤에 값이 있다면 그 타입에 맞는 자료형을 작성해준다.

                  리턴값이 없는 경우에는 void로 작성한다.

메소드명 : 동사형으로 작성한다. ex) eat("피자") eat("치킨")

자료형 매개변수 : 생략 가능하다. 하지만 생략시에는 외부(사용하는 곳)에서 값을 전달받을 수 없고,

                           여러 값을 전달받아야할 때에는 ,로 구별하여 값의 개수만큼 선언해준다.

                           사용시에는 선언된 매개변수의 타입과 개수에 맞게 순서대로 값을 전달해줘야한다.

호출시 실행할 문장 : 생략 가능하다. ④,⑤이 둘다 없는 경우는 없다.

return 리턴값 : 생략 가능하다. ④,⑤이 둘다 없는 경우는 없다.

 

4) 메소드 선언 순서

 

   *두 정수의 덧셈 메소드*

1. 메소드명을 생각한다.

   void add( ) {

         

   }

2. 매개변수를 생각한다.

   void add( int num1, int num2 ) {

         

   }

3. 실행할 문장을 생각한다.

   void add( int num1, int num2 ) {

         syso("두 정수의 덧셈 메소드!");

         int result = num1+num2;

   }

4. 리턴값을 생각한다.

   void add( int num1, int num2 ) {

         syso("두 정수의 덧셈 메소드!");

         int result = num1+num2;

         return result;   

}

5. 리턴타입을 수정한다.

   int add( int num1, int num2 ) {

         syso("두 정수의 덧셈 메소드!");

         int result = num1+num2;

         return result;   

}

 

5) 메소드 사용

메소드는 어떤 객체의 행위, 기능을 담당하고

메소드는 클래스 내부에 선언되어있다.

그 메소드가 속해있는 클래스의 타입으로 먼저 변수를 만들어줘야한다.

(객체화를 진행해주어야한다.)

클래스명 변수명 = new 클래스명( );

변수.메소드명( );              ---> 매개변수가 선언되지 않은 메소드는 그대로 사용

변수.메소드명(값1,값2,...);   ---> 매개변수의 개수와 타입에 맞게 값을 넘겨줘야한다.

public class MethodTest {
	public static void main(String[] args) {
		MethodTest m = new MethodTest(); // 객체화 진행
		System.out.println(m.f(2)); // m은 객체를 뜻함
		System.out.println(m.print("채린공주"));
	}

	int f(int x) {
		return 2 * x + 1;
	}

	// 내이름 10번 출력하는 메소드
	String print(String name) {
		String result = "";
		for (int i = 0; i < 10; i++) {
			result += name+"\n";
		}
		return result;
	}
}

메소드 사용부분은 선언부 마지막에 return값이 있다면 사용한 부분 통째로를

그 리턴값으로 보아야한다. 단, return값이 있다면 절대로 값으로 봐서는 안된다.

 

6) 리턴(return)의 사용

1. 리턴을 사용해야할 때 :

   메소드 내부에서 모든 기능이 구현되지 않을 때

   사용하는 부분에서 아직 할 작업이 남았을 때

   메소드 기능의 결과를 사용하는 부분에 알려주어야할 때

 

2. 리턴을 사용하지 않아도 될 때 :

   메소드 내부에서 모든 기능이 구현될 때

 

반응형