ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 메서드란
    Java 2025. 3. 5. 12:37

    ✅ 메서드란?

    • 함수, 기능.
    • 여러 개의 작은 명령문을 한곳에 모아 사용하는 단위

    예를 들어 "커피 마시기"라는 작업을 하나의 메서드로 표현

    void 커피마시기() {
        // 1. 컵을 준비한다;
        // 2. 컵에 커피를 따른다;
        // 3. 컵에 담긴 커피를 마신다;
    }

     

    메서드를 사용하면 기능별로 코드를 분리할 수 있어, 코드가 명확해지고 유지보수가 쉬워짐.
    예를 들어, 여러 기능들이 한 파일에 모두 존재한다면 수정 시 일일이 찾아서 수정해야 하지만, 메서드로 분리하면 해당 메서드만 수정하면 됨.

     

    ✅ 메서드의 구조

    메서드는 항상 클래스 내부에 정의.

     

    1️⃣ 기본구조

    public class 클래스이름 {
    
        [반환자료형] 메서드이름(매개변수...) {
            // 작업 명령문들...
            [return 반환값;]
        }
    }

    2️⃣ 메서드 구성요소

    1. 메서드 이름: 메서드가 수행하는 작업을 표현하는 이름
    2. 매개변수: 메서드가 작업을 수행하는 데 필요한 데이터를 전달받기 위한 변수들
    3. 작업 명령문: 메서드가 실행할 로직
    4. 반환자료형 및 반환값: 메서드 실행 결과를 호출한 쪽에 돌려주며, 반환 데이터가 없는 경우 void를 사용

     

    ✅ 메서드의 호출과 선언

     

    메서드는 두 가지 측면에서 다뤄진다.

    • 선언부: 메서드가 정의되어 있는 곳
    • 호출부: 메서드를 실제로 사용하는 곳

    예를 들어, 계산 기능을 수행하는 Calculator 클래스를 만든 후, 메인 메서드에서 해당 기능을 호출할 수 있음.

     

    1️⃣ 선언부 예제 (Calculator.java)

    public class Calculator {
    
        // 반환 값이 있는 메서드 (더하기 기능)
        int sum(int value1, int value2) { 
            int result = value1 + value2;
            return result;
        }
    }

     

    • (1) 메서드이름 설명
      • 기능의 역할을 쉽게 짐작할 수 있도록 의미있는 이름을 사용.
      • 카멜케이스(camelCase)를 사용하여 작성하며 주로 동사로 시작하는 것이 좋음.
      • 예시: sum(), printMessage(), findUserById()
    • (2) 매개변수 설명
      • 작업을 수행할 때 필요한 **데이터를 전달받는 공간(변수)**.
      • 매개변수는 여러 개를 사용할 수 있으며 쉼표(,)로 구분.
    • (3) 작업내용 설명
      • 메서드가 실행할 명령문을 {} 중괄호 안에 작성.
      • 메서드가 호출되면 여기에 작성된 코드가 첫 번째 줄부터 실행.
      • 중괄호가 끝나면 함수가 종료.
    • (4) 반환값 / 반환자료형 설명
      • 반환값:
        • 작업한 결과를 반환해야 할 경우 return 키워드를 사용.
        • 반환값은 함수가 호출된 곳으로 전달되고 이를 활용할 수 있음.
      • 반환 자료형:
        • 반환되는 데이터의 자료형을 메서드 선언부에서 명시해야 합니다.
        • 반환값이 있는 경우 → 반환되는 데이터의 자료형(int, String, double 등)을 작성
        • 반환값이 없는 경우 → void를 작성

    2️⃣ 호출부 예제 (Main.java)

    public class Main {
        public static void main(String[] args) {
            Calculator calculator = new Calculator(); // Calculator 객체 생성
            int result = calculator.sum(1, 2);          // sum 메서드 호출 후 반환값 저장
            System.out.println("계산결과는 " + result + "입니다.");
        }
    }

     

    ✅ 반환 데이터가 없는 메서드 (void)

    모든 메서드가 반드시 데이터를 반환해야 하는 것은 아님.
    반환할 데이터가 없다면 반환자료형에 void를 명시.

    public class Calculator {
    
        // 반환 데이터가 없는 메서드 (더하기 기능)
        void sum(int value1, int value2) { 
            int result = value1 + value2;
            System.out.println("계산결과는 " + result + "입니다.");
        }
    }

    호출 시 반환값을 받아 처리할 필요 없이 메서드 내부에서 처리된 결과를 바로 출력할 수 있습니다.

     
    public class Main {
        public static void main(String[] args) {
            Calculator calculator = new Calculator();
            calculator.sum(1, 2); // 반환값이 없으므로 따로 변수에 저장하지 않습니다.
        }
    }

     

    ✅ 지역변수와 메서드 영역

    각 메서드는 자신만의 영역을 가지며, 중괄호 {} 안에서 선언된 변수는 해당 영역 내에서만 유효.
    따라서 메서드 내부에서 선언된 변수는 메서드가 종료되면 소멸.

     

    예를 들어, 아래의 sum 메서드에서 선언된 result 변수는 메서드 내부에서만 사용할 수 있음.

    int sum(int value1, int value2) {
        int result = value1 + value2; // 지역변수
        return result;
    }

     

    ✅ 반환 값이 있을 때는 return

    • return 키워드를 활용해 반환되는 데이터를 표현할 수 있음.
    • 반환된 데이터는 호출부에서 받아서 활용 가능.
    public class Calculator {
    	int sum(int value1, value2) {
    		int result = value1 + value2;
    		return result; // ✅ result 가 반환됩니다.
    	}
    }
    public class Main {
    	public static void main(String[] args {
    		Calculator calculator = new Calculator();
    		int result = calculator.sum(1, 2); // ✅ 반환된 데이터를 result 변수에 담아 사용
    		System.out.println("계산결과는 " + result + "입니다.");
    	}
    }

     

    ✅ 정리

    • 메서드의 필요성:
      작업 단위를 모듈화하여 코드의 재사용성과 유지보수성을 높임.
    • 메서드 구조:
      반환자료형, 메서드 이름, 매개변수, 작업 명령문, 그리고 (필요시) 반환값으로 구성.
    • 호출부와 선언부:
      선언부는 메서드를 정의하는 곳, 호출부는 메서드를 사용하는 곳.
    • 반환자료형:
      결과 데이터를 반환할 때는 적절한 자료형을 사용하고, 반환할 값이 없다면 void를 사용.

    'Java' 카테고리의 다른 글

    [Java] 반복문과 배열  (1) 2025.03.05
    [Java] 연산자와 조건문  (0) 2025.03.05
    [Java] 변수와 입출력  (0) 2025.03.05
    [Java] 명명 규칙 및 패키지, 클래스  (1) 2025.03.05
    [Java] Java란?  (1) 2025.02.25
Designed by Tistory.