IT/JAVA

[JAVA] 자바 기초 복습 (Chapter.05)

j8970 2025. 2. 24. 15:02

📅 학습 기간: 2월 1주차!
🎯 학습 내용: 메서드(Method), 오버로딩(Overloading), 오버라이딩(Overriding)


📌 1. 메서드(Method)

💡 메서드란?

  • 특정 기능을 수행하는 코드 블록
  • 재사용 가능, 유지보수 용이
  • 매개변수를 통해 값을 전달받고, 반환값을 가질 수 있음

✅ 메서드 기본 구조

ReturnType methodName(매개변수) {
    // 구현부
}

✅ 메서드 예제

class Exam {
    int add(int a, int b) {
        int sum = a + b;
        return sum;
    }
}

📌 2. 메서드 구성 요소

✅ 1) 반환 유형(ReturnType)

  • 메서드 실행 후 반환할 데이터 유형 지정
  • 반환 데이터가 없는 경우 void 사용
int add(int a, int b) { return a + b; }
void printMessage() { System.out.println("Hello!"); }

✅ 2) 메서드명(MethodName)

  • lowerCamelCase 사용 권장
  • 동사 사용을 권장 (예: calculateSum(), printResult())

✅ 3) 매개변수(Parameter List)

  • 메서드에 전달되는 입력 값 목록
  • 자료형과 함께 선언해야 함
class Calculator {
    int add(int a, int b) {
        return a + b;
    }

    void printMessage() {
        System.out.println("Hello!");
    }
}

📌 3. 메서드 사용 예제

public class A_Method {
    public static void main(String[] args) {
        Calculator calc = new Calculator();  // 객체 생성

        // 메서드 호출
        System.out.println(calc.add(10, 5));  // 15
        int result = calc.add(3, 5);
        System.out.println(result);  // 8
    }
}

📌 4. 메서드 오버로딩 (Overloading)

💡 메서드 이름은 동일하지만, 매개변수 구성이 다른 경우

✅ 오버로딩 성립 조건

1️⃣ 메서드 이름이 동일해야 함
2️⃣ 매개변수의 개수 또는 타입이 달라야 함
3️⃣ 반환 타입(ReturnType)은 오버로딩 성립에 영향이 없음

class Calc {
    int add(int a, int b) { return a + b; }
    double add(double x, double y) { return x + y; }
    double add(int x, double y) { return x + y; }
    int add(int a, int b, int c) { return a + b + c; }
}

📌 5. 오버로딩의 장단점

✅ 장점

코드 가독성 향상
사용자가 매개변수 순서를 외우지 않아도 됨
컴파일 시 타입 체크 강화 → 올바른 메서드를 자동 선택

❌ 단점

불필요한 오버로딩은 코드 복잡성을 증가시킴


📌 6. 오버로딩 vs 오버라이딩

구분 오버로딩 (Overloading) 오버라이딩 (Overriding)
적용 대상 같은 클래스 내에서 상속 관계에서
변경 요소 매개변수 개수 또는 타입 메서드 본문 내용
반환 타입 영향 없음 부모 클래스 메서드와 동일해야 함

🎯 소감

📌 메서드의 개념을 다시 정리하면서 코드의 재사용성을 깨닫게 됨
📌 오버로딩과 오버라이딩의 차이를 정확히 이해하는 것이 중요


🚀 마무리

이번 장에서는 메서드의 개념과 오버로딩을 학습했다!