Java 메서드 완벽 가이드: 개념부터 오버로딩까지

2025. 7. 31. 17:42·Back-End/Java

📚 자바 메서드 완전 정복! 🧠✨

함수? 메서드? 오버로딩? static은 또 뭐야? 초보자도 이해할 수 있게 예제로 풀어보겠습니다.


🧩 1. 메서드란?

  • 클래스 내부에서 특정 작업을 수행하도록 정의된 코드 블록
  • 구조: 반환타입 메서드명(매개변수) { 실행 코드 }
  • 객체의 동작을 정의함 → Python의 함수와는 다르게 자바는 함수 없이 전부 메서드
int add(int a, int b) {
    return a + b;
}

✅ 메서드명은 동사형 (eat, run), 변수명은 명사형 (person, score)


🔁 2. 매개변수 vs 인자

구분 설명
매개변수(parameter) 메서드 선언부에서 입력값을 받는 변수
인자(argument) 메서드 호출 시 전달하는 실제 값
 
int add(int a, int b) // ← 매개변수  
add(10, 20);          // ← 인자

📌 자바는 "값에 의한 호출"을 사용함! (값이 복사되어 전달됨)


🔄 3. 메서드 오버로딩 (Overloading)

  • 같은 이름의 메서드를 매개변수의 타입/개수만 다르게 하여 여러 개 정의하는 것
  • 반환 타입은 영향을 주지 않음
int add(int a, int b)
double add(double a, double b)
int add(int a, int b, int c)

🎯 목적: 다양한 형태의 입력을 한 메서드 이름으로 받아 처리
👍 장점: 가독성 향상, 코드 재사용성 증가
⚠️ 단점: 과도한 오버로딩은 오히려 복잡성 증가


⚙️ 4. 인스턴스 메서드와 정적(static) 메서드

구분 특징 사용 방법
인스턴스 메서드 객체 상태에 의존 객체명.메서드()
정적 메서드 공통 기능, 객체 없이 사용 가능 클래스명.메서드()
 
class Operator {
    int add() { return a + b; }               // 인스턴스 메서드
    static int subtract(int a, int b) { ... } // 정적 메서드
}

✅ static은 객체와 무관한 "공통 동작" 정의 시 사용


🍔 5. 실전 예제: 주문받기 시스템

void placeOrder(String dish)
void placeOrder(String dish, int quantity)
void placeOrder(String dish, String specialRequests)
void placeOrder(String dish, int quantity, String specialRequests)
  • 같은 placeOrder 이름으로 다양한 방식의 주문 처리 가능
  • 자바 컴파일러가 인자의 타입/순서를 보고 자동으로 매칭해줌
placeOrder("hamburger");
placeOrder("pizza", 2);
placeOrder("pasta", "많이 주세요");
placeOrder("salad", 3, "땅콩 빼고 주세요");

📝 마무리 요약

개념 핵심 요약
메서드 클래스 내부에 정의된 동작 코드
매개변수 메서드 정의 시 입력 받는 변수
인자 메서드 호출 시 전달하는 실제 값
오버로딩 같은 이름, 다른 매개변수 구조의 메서드 다중 정의
static 객체 생성 없이 사용하는 정적 메서드

'Back-End > Java' 카테고리의 다른 글

접근제어자부터 다형성까지, 자바 객체지향 필수 문법 모음  (2) 2025.08.06
Java 상속과 생성자 흐름 완전 정복  (3) 2025.08.04
객체 지향 프로그래밍(OOP) 란?  (3) 2025.07.28
자바 배열의 모든 것: 코드로 배우는 핵심 개념  (2) 2025.07.23
if-중독자 탈출법.zip | 자바 제어문 제대로 써보자  (4) 2025.07.20
'Back-End/Java' 카테고리의 다른 글
  • 접근제어자부터 다형성까지, 자바 객체지향 필수 문법 모음
  • Java 상속과 생성자 흐름 완전 정복
  • 객체 지향 프로그래밍(OOP) 란?
  • 자바 배열의 모든 것: 코드로 배우는 핵심 개념
rpsnrpsn
rpsnrpsn
rpsnrpsn 님의 블로그 입니다.
  • rpsnrpsn
    rpsnrpsn 님의 블로그
    rpsnrpsn
  • 전체
    오늘
    어제
    • 분류 전체보기 (21)
      • Back-End (18)
        • Java (17)
        • DB (1)
      • Front-End (3)
        • HTML (1)
        • CSS (0)
        • JavaScript (1)
        • Etc. (1)
  • 블로그 메뉴

    • 홈
    • Github
  • hELLO· Designed By정상우.v4.10.4
rpsnrpsn
Java 메서드 완벽 가이드: 개념부터 오버로딩까지
상단으로

티스토리툴바