[Java] 메서드

2026. 4. 20. 20:18·Language/Java


* 개념 복습과 학습 정도를 파악하고자 포스팅합니다!

* Claude, ChatGPT를 활용하여 이미지를 생성하고 활용합니다.

 

Java 메서드

1. 메서드???

특정 기능을 수행하는 코드 블록에 붙인 것.

클래스 안에 정의되고, 필요할 때 마다 호출해서 재사용할 수 있습니다.

 

메서드가 없다면 같은 코드를 여러 번 반복해서 써야 해요..

메서드로 묶어두면 한 번만 작성하고 여러 곳에서 호출할 수 있어요!!


2. 메서드 구조

       int                  add              (int a, int b)          {return a + b;)
(반환타입)         (메서드명)            (매개변수)              (메서드 바디)

 

반환타입

메서드가 작업을 마친 뒤 호출한 곳으로 돌려주는 값의 타입입니다.

 

매개변수와 인자

매개변수(Parameter)는 메서드를 정의할 때 쓰는 변수고, 인자(Argument)는 메서드를 호출할 때 실제로 넘기는 값이에요. 인자의 값이 매개변수로 복수됩니다.


3. 메서드 호출 흐름


4. 메서드 종류

매개변수 / 반환값에 따른 4가지 조합

// 1. 매개변수 없음, 반환값 없음
void sayHello() {
    System.out.println("안녕하세요!");
}

// 2. 매개변수 있음, 반환값 없음
void printName(String name) {
    System.out.println("이름: " + name);
}

// 3. 매개변수 없음, 반환값 있음
int getYear() {
    return 2025;
}

// 4. 매개변수 있음, 반환값 있음 (가장 일반적)
int add(int a, int b) {
    return a + b;
}

5. return의 두 가지 역할

// 역할 1: 값을 반환
int add(int a, int b) {
    return a + b;  // 계산 결과를 반환하고 메서드 종료
}

// 역할 2: 메서드 중간에서 즉시 종료 (void에서)
void checkAge(int age) {
    if (age < 0) {
        System.out.println("잘못된 나이입니다.");
        return;  // 여기서 메서드 즉시 종료
    }
    System.out.println("나이: " + age);
}

6. this 키워드

현재 객체 자신을 가리키는 참조.

매개변수 이름과 필드 이름이 같을 때 구분하기 위해 사용합니다.

public class Person {
    String name;
    int age;

    // this로 필드와 매개변수 구분
    void setInfo(String name, int age) {
        this.name = name;  // this.name = 필드, name = 매개변수
        this.age  = age;
    }

    // this로 자신의 다른 메서드 호출
    void introduce() {
        System.out.println("이름: " + this.name);
        this.printAge();  // 자신의 다른 메서드 호출
    }

    void printAge() {
        System.out.println("나이: " + this.age);
    }
}

7. 메서드 오버로딩(Overloading)

같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 해서 여러개 정의하는 것입니다.

public class Calculator {

    // 정수 2개
    int add(int a, int b) {
        return a + b;
    }

    // 실수 2개 — 타입이 다름
    double add(double a, double b) {
        return a + b;
    }

    // 정수 3개 — 개수가 다름
    int add(int a, int b, int c) {
        return a + b + c;
    }
}

// 호출 시 Java가 알아서 맞는 메서드 선택
Calculator calc = new Calculator();
calc.add(3, 5);          // int add(int, int)  호출
calc.add(1.5, 2.5);      // double add(double, double) 호출
calc.add(1, 2, 3);       // int add(int, int, int) 호출

8. 값 전달 vs 참조 전달

Java는 항상 값(Value)을 복사해서 전달.

기본 타입과 참조 타입의 동작이 달라서 헷갈리기 쉽습니다.

기본 타입(int, double 등)은 값 자체가 복사되어서 메서드 안에서 바꿔도 원본이 안 바뀌죠. 참조 타입(객체)은 주소가 복사되어서 같은 객체를 가리키게 되고, 메서드 안에서 필드를 바꾸면 원본에 영향을 줍니다.


정리

 

벌써 메서드까지 정리를 해부렀네요!! 이제 한 반의 반절온거 같아요..!

복습 개념으로 시작한 개념 정리 포스팅이 쌓이기 시작하니 매우매우 뿌듯하네요 ㅎ

다음 포스팅으로 찾아뵙겠습니다!

감사합니다 :)

'Language > Java' 카테고리의 다른 글

[Java] 상속 완전히 정리해버리기  (0) 2026.04.22
[Java] 생성자 & 캡슐화 완전히 정리해버리기  (0) 2026.04.22
[Java] 클래스와 객체  (0) 2026.04.20
[Java] 자바는 입력을 어떻게 받아? - Scanner  (0) 2026.04.20
[Java] 형변환(Type Casting)  (0) 2026.04.20
'Language/Java' 카테고리의 다른 글
  • [Java] 상속 완전히 정리해버리기
  • [Java] 생성자 & 캡슐화 완전히 정리해버리기
  • [Java] 클래스와 객체
  • [Java] 자바는 입력을 어떻게 받아? - Scanner
BackendInho
BackendInho
항상 열정적으로 부딪히고 깨닫는 주니어 백엔드 개발자의 여정을 기록합니다!
  • BackendInho
    Inho.devlog
    BackendInho
  • 전체
    오늘
    어제
    • 분류 전체보기 (41)
      • TIL (0)
      • Language (21)
        • Java (21)
      • Backend (8)
        • Spring (8)
      • Database (0)
        • SQL (0)
      • CS (8)
        • Computer Structure (2)
        • Network (2)
        • OS (1)
        • Data Structure & Algorithms (3)
      • Devops (0)
        • Docker & Kubernetes (0)
      • Coding-Test (1)
        • Programmers (3)
        • LeatCode (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    API
    CS
    HTTP
    java
    REST
    REST API
    Spring
    Spring Boot
    Web
    공간복잡도
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
BackendInho
[Java] 메서드
상단으로

티스토리툴바