[Java] 자바 메서드

2025. 1. 7. 15:00·Language/Java
반응형

 

☕ 메서드 선언(Method Declaration)

public static int add(int a, int b)

 

메서드의 선언 부분(메서드 이름, 반환 타입, 매개변수(파라미터) 목록 포함)

메서드 선언 정보를 통해 다른 곳에서 해당 메서드 호출 가능

  • public static
    • public: 다른 클래스에서 호출할 수 있는 메서드 (접근 제어)
    • static: 객체를 생성하지 않고 호출할 수 있는 정적 메서드
  • int add(int a, int b)
    • int: 메서드 실행 결과를 반환할 때 사용할 반호나 타입 지정
    • add: 메서드 이름
    • (int a, int b): 파라미터(매개변수), 메서드를 호출할 때 전달하는 입력 값 정의, 해당 메서드 안에서만 사용되는 변수들

 

☕ 메서드 호출

호출: call("hello", 20)
메서드 정의: int call(String str, int age)

 

🍪 인수(Argument)

  • "hello", 20과 같이 넘기는 값을 Argument라고 칭함
  • Argument(아규먼트), 인수, 인자 다 같은 말
  • 인수는 ‘인’과 ‘수’의 합성어 → ‘들어가는 수’ → 메서드 내부로 들어가는 값

 

🍪 매개변수(Parameter)

  • 메서드를 정의할 때 선언한 변수인 String str, int age를 매개변수(파라미터)라고 칭함
  • 메서드를 호출할 때 인수를 넘기면, 그 인수가 매개변수에 대입됨
  • 매개변수는 ‘매개’와 ‘변수’의 합성어 → ‘중간에서 전달하는 변수’ → 메서드 호출부와 메서드 내부 사이에서 값을 전달하는 역할을 하는 변수

 

☕ 메서드 정의

public static int add(int a, int b) {
    // 메서드 본문, 실행 코드
}

제어자 반환타입 메서드이름(매개변수 목록) {
    메서드 본문
}
  • 제어자(Modifier): public, static과 같은 부분
  • 반환 타입(Return Type): 메서드가 실행된 후 반환하는 데이터의 타입을 지정
    • 메서드가 값을 반환하지 않는 경우, 없다는 뜻의 void 사용
    • ex) void printName(String str)
  • 메서드 이름(Method Name): 메서드의 이름, 메서드 호출에 사용
  • 매개변수(Parameter): 입력 값, 메서드 내부에서 사용할 수 있는 변수
    • 매개변수는 옵션, 입력값이 필요 없는 메서드는 매개변수 지정하지 않아도 됨
    • ex) add()
  • 메서드 본문(Method Body): 실제 메서드의 코드가 위치, 중괄호 {} 사이에 코드 작성

 

☕ 메서드 호출과 값 전달

대원칙: 자바는 항상 변수의 값을 복사해서 대입한다

int num1 = 5;
int num2 = num1;
num2 = 10;

값을 복사해서 대입하는 부분

 

int num2 = num1;

  • num1에 있는 값 5를 복사해서 num2에 넣는 것임.
    • 복사한다고 표현한 이유는 num1의 값을 읽어도 num1에 있는 기존 값이 유지되고, 새로운 값이 num2에 들어가기 때문임. 마치 num1의 값이 num2에 복사된 것 같음.
    • num1이라는 변수 자체가 num2에 들어가는 것이 아님. num1에 들어있는 값을 읽고 복사해서 num2에 넣는 것임.
    • 간단하게 num1에 있는 값을 num2에 대입한다고 표현함. 하지만 실제로는 그 값을 복사해서 대입하는 것임.

 

☕ 메서드 오버로딩

자바는 메서드의 이름뿐만 아니라 매개변수 정보를 함께 사용해서 메서드를 구분

이름이 같고 매개변수가 다른 메서드 정의 가능

  • ex) add(int a, int b), add(int a, int b, int c), add(double a, double b)

 

🍪 오버로딩 규칙

메서드의 이름이 같아도 매개변수의 타입 및 순서가 다르면 오버로딩 가능

반환 타입은 인정x

 

🍪 메서드 시그니처(method signature)

메서드 시그니처 = 메서드 이름 + 메서드 타입(순서)

  • 자바에서 메서드를 구분할 수 있는 고유한 식별자나 서명
  • 메서드를 구분할 수 있는 기준
  • 메서드 이름이 같아도 메서드 시그니처가 다르면 다른 메서드로 간주
  • 반환 타입은 시그니처에 포함 x

 

☕ 메서드 사용의 장점

  • 코드 재사용
    • 메서드는 특정 기능을 캡슐화하므로, 필요할 때마다 그 기능을 다시 작성할 필요 없이 해당 메서드를 호출함으로써 코드를 재사용할 수 있다.
  • 코드의 가독성
    • 이름이 부여된 메서드는 코드가 수행하는 작업을 명확하게 나타내므로, 코드를 읽는 사람에게 추가적인 문맥을 제공한다.
  • 모듈성
    • 큰 프로그램을 작은, 관리 가능한 부분으로 나눌 수 있다. 이는 코드의 가독성을 향상하고 디버깅을 쉽게 만든다.
  • 코드 유지 관리
    • 메서드를 사용하면, 코드의 특정 부분에서 문제가 발생하거나 업데이트가 필요한 경우 해당 메서드만 수정하면 된다. 이렇게 하면 전체 코드 베이스에 영향을 주지 않고 변경 사항을 적용할 수 있다.
  • 재사용성과 확장성
    • 잘 설계된 메서드는 다른 프로그램이나 프로젝트에서도 재사용할 수 있으며, 새로운 기능을 추가하거나 기존 기능을 확장하는 데 유용하다.
  • 추상화
    • 메서드를 사용하는 곳에서는 메서드의 구현을 몰라도 된다. 프로그램의 다른 부분에서는 복잡한 내부 작업에 대해 알 필요 없이 메서드를 사용할 수 있다.
  • 테스트와 디버깅 용이성
    • 개별 메서드는 독립적으로 테스트하고 디버그 할 수 있다. 이는 코드의 문제를 신속하게 찾고 수정하는 데 도움이 된다.

 

[출처] 김영한의 자바 입문

반응형

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

[Java] 클래스와 데이터  (0) 2025.01.08
[Java] Scanner로 입력 받기  (1) 2025.01.06
[Java] 자바 연산자  (1) 2025.01.05
[Java] 자바 변수  (0) 2025.01.04
'Language/Java' 카테고리의 다른 글
  • [Java] 클래스와 데이터
  • [Java] Scanner로 입력 받기
  • [Java] 자바 연산자
  • [Java] 자바 변수
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (198) N
      • SSAFY (10)
      • Algorithm (115)
        • 이론 (6)
        • 백준 (BOJ) (108)
        • 프로그래머스 (1)
      • Trouble Shooting (9)
      • Frontend (7) N
      • React (17)
      • Next.js (4)
      • Vue (4)
      • Node.js (2)
      • HTML (9)
      • DevOps (4)
        • Git (4)
      • Language (9)
        • JavaScript (0)
        • Java (9)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    우선순위큐
    재귀
    SSAFY
    Heap
    강의
    DP
    Algorithm
    싸피
    React
    백트래킹
    수학
    dfs
    블록체인
    Error
    백준
    bfs
    티스토리챌린지
    중복순열
    순열
    알고리즘
    브루트포스
    Java
    Next.js
    구현
    오블완
    중복조합
    힙
    SSAFYcial
    html5
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
올콩
[Java] 자바 메서드
상단으로

티스토리툴바