Home [Java basic] 03. 메소드
Post
Cancel

[Java basic] 03. 메소드

1. 메소드 개요

메소드(method)란

  • 입력값에 따른 결과를 반환하는 일련의 코드 묶음
  • 한 번에 여러 줄의 코드를 수행할 수 있음
  • 파이썬의 함수와 같은 역할을 함
    • 파이썬과 다른 점
      • 아래와 같은 상황이 아닐 때 같은 함수는 중복이 불가능하다.
        • 매개 변수의 타입이 다를 때
        • 매개 변수의 개수가 다를 때
      • 다만 파이썬의 함수와는 다르게 함수의 위치나 순서가 상관이 없다.
        • 파이썬은 함수를 미리 선언 해야 하지 만 자바는 상관 없다.

메소드의 동작 원리

  • 메소드는 호출부와 정의부로 나뉘어 동작
    • 호출부: 메소드를 사용하는 영역, 입력 값을 전달하여 그 결과를 돌려받는다.
    • 정의부: 입력값을 받아 결과를 만드는 일련의 코드 묶음

2. 메소드 정의와 호출

메소드의 구조

  • 메소드명(method name): 메소드의 이름으로, 호출 시 사용
  • 입력변수(parameters): 메소드 실행 시 입력값을 저장하는 변수, 매개변수 혹은 파라미터라고도 부름
  • 반환값(return type): 메소드의 최종 결과로, 반환될 값을 의미
  • 반환 타입(return type): 반환값의 타입을 의미 ```java /*
    • TYPE: 반환 타입
    • NAME: 메소드 명
    • PARAMETERS: 입력변수
    • VALUE: 반환 값 */ public static TYPE NAME (PARAMETERS){ … return VALUE; } ```

메소드 정의하기

  1. 메소드명 작성
  2. 입력변수 생성
  3. 반환값 생성
  4. 반환 타입 명시

메소드 호출하기

  1. 메소드 명을 적기
  2. 소괄호 사이에 입력값을 전달

3. 메소드의 유형

단일 입력 변수 메소드

  • ex. 정사각형의 넓이를 구하는 메소드
    1
    2
    3
    
      public static int square(int length){
          return length * length;
      }
    

다중 입력 변수 메소드

  • 입력 변수들의 타입이 달라고 상관 없음
  • ex. 원기둥의 부피를 구하는 메소드
    1
    2
    3
    
      public static double volume(double radius, double height){
          return Math.PI * radius * radius * height;
      }
    

입력 변수가 없는 메소드

  • ex. 주사위 굴리는 메소드
    1
    2
    3
    4
    
      public static int rollDice(){
          double x = 6 * Math.random();
          return (int) x + 1;
      }
    

반환값이 없는 메소드

  • void 메소드: 메소드의 반환값이 존재하지 않는 메소드
    • 반환 타입은 void
    • return 키워드 생략 가능
  • ex. 반환값이 없는 메소드를 변수에 넣었을 때
    1
    2
    3
    4
    5
    6
    
      public  static  void printHello(String msg) {
          System.out.println("Hello "+msg);
      }
      public  static  void main(String[] args) {
          printHello("야옹이");
      }
    
    • 파이썬
      • printHello() 함수 리턴값이 없음
      • 변수 result에 None 저장
      • result = printHello("야옹이"); → 에러 안남(None 출력)
    • 자바
      • printHello() 함수 리턴값이 없음
      • 변수 result에 리턴값 저장하려고 하면 에러
      • result = printHello("야옹이"); → 컴파일 에러
This post is licensed under CC BY 4.0 by the author.