1. Method[메서드]

  1. Method란?

    1. 프로그래밍언어에서 **함수(Function)**이라는 것이 별도로 존재하며, Java는 Class를 떠나 존재하는 것은 없기 때문에 함수는 따로 존재하지 않으며, Class 내에 존재함
    2. Class내의 함수(Function)을 **메서드(Method)**라 말함
  2. Method를 사용하는 이유?

    1. 프로그래밍을 하면서 **반복해서 코드**를 작성하는데 재사용성을 위해서 호출시에만 코드가 동작하도록 하기 위함임

    2. 입력값을 주었을 때 리턴값으로 돌려주기 위함임

      // Method type[Int]
      int plus(int firstNum, int lastNum) {
      	return firstNum + lastNum;
      }
      
    3. main 메서드에서 plus()를 사용하기 위해서 해당하는 Class를 main 메서드에 객체를 생성해줌

      // Main Method
      public static void main(String[] args) {
      			// Operator Class를 main 메서드에 객체를 생성
      			// 해줘서 plus method를 사용해주기 위한 설정
            Operator operator = new Operator();
      			
      			// int 타입 setting
      			int firstNum = 1;
      			int lastNum = 2;	
      			int result = operator.plus(firstNum, lastNum);
      
      			// output[출력 => plus method[값을 반환]]
      			System.out.printf("%d\\n", result); // 3			
          }
      
  3. 매개변수와 인수?

    1. 매개변수(Parameter)

      1. 메서드에 입력으로 **전달된 값을 받는 변수(Variable)**를 말함

      2. 메서드에 전달된 값을 저장하는 변수라고도 함!

        public class Operator {
        	// Method type[Int]
        	int plus(int firstNum, int lastNum) {
        		// plus(int firstNum, int lastNum) << 매개변수임
        		return firstNum + lastNum;
        	}
        }
        
    2. 인수(Arguments)

      1. 메서드를 호출할 때 **전달하는 입력값(input value)**을 말함

      2. 메서드에 전달하는 값이라고도 함

        public class Operator {
        
        	public static void main(String[] args) {
        			
              Operator operator = new Operator();
        			
        			int firstNum = 1;
        			int lastNum = 2;	
        			// plus(firstNum, lastNum) << 인수임
        			int result = operator.plus(firstNum, lastNum);
        
        			// output[출력 => plus method[값을 반환]]
        			System.out.printf("%d\\n", result); // 3			
            }
        }
        
  4. Method의 입력값과 리턴값?

    1. 메서드는 들어온 입력값을 가지고 어떤 처리를 하여 적절한 리턴값을 돌려주는 것을 말함
    2. 입력값(inputVale) ⇒ 메서드(Parameter) ⇒ 리턴값(Parameter)
  5. Method 구조?

    1. 리턴자료형은 메서드 수행 후 돌려줄 값의 자료형을 말함

    2. 메서드의 리턴값은 return이라는 명령을 사용함

      리턴자료형 메서드명(입력자료형1 매개변수1, 입력자료형2 매개변수2, ...) {
          ...    
          return 리턴값;  
      // 리턴자료형이 void 인 경우에는 return 문이 필요없음
      }
      
    3. 메서드는 입출력 유무에 따라 4가지로 분류됨

      1. 입력과 출력이 모두 있는 메서드

        1. [예제]

          public class Operator {
          	// Method type[Int]
          	int plus(int firstNum, int lastNum) {
          		return firstNum + lastNum;
          	}
          }
          // -> 입력값 : int firstNum, lastNum
          // -> 리턴값 : int firstNum + lastNum
          
      2. 입력과 출력이 모두 없는 메서드

        1. [예제]

          public class PrtintClass {
          	// Method type[void]
          	void print() {
          		System.out.println("Hello");
          	}
          }
          // -> 입력값 : X
          // -> 리턴값 : void(X)
          
      3. 입력은 없고 출력은 있는 메서드

        1. [예제]

          public class PrtintClass {
          	// Method type[String]
          	String print() {
          		return "Hello";
          	}
          }
          // -> 입력값 : X
          // -> 리턴값 : String Hello
          
      4. 입력은 있고 출력은 없는 메서드

        1. [예제]

          public class Operator {
          	// Method type[void]
          	void plus(int firstNum, int lastNum) {
          		System.out.printf("%d과 %d의 합은 %d입니다.\\n", firstNum, lastNum, (firstNum + lastNum));
          	}
          }
          // -> 입력값 : int firstNum, lastNum
          // -> 리턴값 : void(X)