[JAVA] 자바 함수(메서드)의 기초: 선언부터 사용까지

2024. 7. 19. 10:09·자바

안녕하세요, 오늘은 기본으로 돌아가 리마인드 하는 생각으로 자바 프로그래밍의 핵심 요소인 함수(자바에서는 주로 '메서드'라고 부릅니다)에 대해 알아보겠습니다. 특히 함수 선언에 사용되는 여러 키워드들의 의미와 역할을 자세히 살펴보겠습니다.

1. 자바 메서드의 기본 구조

자바에서 메서드의 기본 구조는 다음과 같습니다:

접근제어자 [기타제어자] 반환타입 메서드명(매개변수목록) {
    // 메서드 바디
}

각 요소에 대해 자세히 알아보겠습니다.

2. 접근 제어자 (Access Modifiers)

접근 제어자는 메서드에 대한 접근 범위를 지정합니다.

  • public: 어디서든 접근 가능
  • protected: 같은 패키지 내 또는 상속받은 클래스에서 접근 가능
  • (default): 같은 패키지 내에서만 접근 가능 (키워드 없음)
  • private: 같은 클래스 내에서만 접근 가능

예시:

public void doSomething() {
    // 모든 클래스에서 접근 가능한 메서드
}

3. 기타 제어자 (Other Modifiers)

  • static: 클래스 메서드를 선언. 객체 생성 없이 호출 가능
  • final: 오버라이딩 불가능한 메서드 선언
  • abstract: 추상 메서드 선언 (구현부 없음)
  • synchronized: 스레드 동기화를 위한 메서드 선언

예시:

public static void utilityMethod() {
    // 객체 생성 없이 호출 가능한 유틸리티 메서드
}

4. 반환 타입 (Return Type)

메서드가 반환하는 값의 데이터 타입을 지정합니다.

  • void: 반환값이 없음
  • 기본 데이터 타입 (int, double, boolean 등)
  • 참조 타입 (String, 사용자 정의 클래스 등)

예시:

public int calculateSum(int a, int b) {
    return a + b;
}

5. 메서드명 (Method Name)

  • 카멜 케이스(camelCase) 사용
  • 동사로 시작하는 것이 관례

예시: calculateTotal(), getUserName(), isValid()

6. 매개변수 목록 (Parameter List)

메서드에 전달되는 입력값들을 정의합니다.

예시:

public void setUserInfo(String name, int age, boolean isStudent) {
    // 매개변수를 사용하는 코드
}

7. 메서드 바디 (Method Body)

중괄호 {} 안에 실제 메서드의 동작을 정의하는 코드를 작성합니다.

8. 예제: 다양한 메서드 선언

public class ExampleClass {
    // public static void 메서드
    public static void main(String[] args) {
        System.out.println("메인 메서드입니다.");
    }

    // private 인스턴스 메서드
    private void privateMethod() {
        System.out.println("이 메서드는 클래스 내부에서만 접근 가능합니다.");
    }

    // public 인스턴스 메서드 (반환값 있음)
    public int add(int a, int b) {
        return a + b;
    }

    // protected static 메서드
    protected static void protectedStaticMethod() {
        System.out.println("이 메서드는 같은 패키지나 자식 클래스에서 접근 가능합니다.");
    }
}

9. 메서드 호출

메서드를 호출하는 방법은 메서드의 유형에 따라 다릅니다:

  1. 인스턴스 메서드 호출:
  2. ExampleClass example = new ExampleClass(); int result = example.add(5, 3);
  3. 정적(static) 메서드 호출:
  4. ExampleClass.protectedStaticMethod();

10. 결론

자바에서 메서드는 프로그램의 기능을 모듈화하고 코드의 재사용성을 높이는 핵심 요소입니다. 접근 제어자와 다양한 제어자를 통해 메서드의 특성을 정확히 표현할 수 있으며, 이는 객체 지향 프로그래밍의 중요한 개념들을 구현하는 데 필수적입니다.

메서드의 올바른 사용은 코드의 가독성과 유지보수성을 크게 향상시킵니다. 앞으로 프로그래밍을 하실 때, 이러한 기본 개념들을 잘 활용하시어 더 효율적이고 체계적인 코드를 작성하시기 바랍니다.

다음 포스트에서는 메서드 오버로딩, 오버라이딩 등 더 심화된 주제에 대해 다루도록 하겠습니다.

'자바' 카테고리의 다른 글

ORM vs MyBatis: 자바 데이터베이스 접근 기술 비교  (1) 2024.07.29
[JAVA] 자바 메서드 심화: 오버로딩과 오버라이딩  (0) 2024.07.19
[API] Python API와 Java 클라이언트를 이용한 CPK 분석 및 히스토그램 생성  (1) 2024.07.19
[JAVA] 소켓 프로그래밍 3번  (1) 2024.07.08
[JAVA] 소켓 프로그래밍 2번  (1) 2024.07.08
'자바' 카테고리의 다른 글
  • ORM vs MyBatis: 자바 데이터베이스 접근 기술 비교
  • [JAVA] 자바 메서드 심화: 오버로딩과 오버라이딩
  • [API] Python API와 Java 클라이언트를 이용한 CPK 분석 및 히스토그램 생성
  • [JAVA] 소켓 프로그래밍 3번
뚤떡이
뚤떡이
프로그래밍을 알아가며 저와 함께 성장하는 블로그 입니다
  • 뚤떡이
    뚤떡이의 발개벗긴개발
    뚤떡이
  • 전체
    오늘
    어제
    • 분류 전체보기 (73)
      • Docker (2)
      • 자바 (29)
        • start (10)
        • calcu (4)
        • process (7)
      • 플러터 (1)
      • 알고리즘 (12)
        • 개념 (2)
        • 구현 (5)
        • 백준 (0)
        • 프로그래머스 (5)
      • 이클립스 (4)
        • 초기설정 (4)
      • SQL (5)
      • IT 잡동사니 (10)
      • 개발 관련 (10)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    synology
    #electron
    요구사항 정의서
    크롬 원격
    #apachesuperset #시놀로지 #db2 #데이터시각화 #기술블로그
    크롬 원격 데스크톱
    개발일지 #프로젝트후기 #gpt4 #번역 #자동화 #python #electron
    #개발일지
    #자동화
    #python #개발일지 #번역 #메모리최적화 #websocket #redis #비동기프로그래밍
    스팸메일 #메일보안 #gophish #it보안 #오픈소스
    시놀로지
    MAC 크롬 원격
    #프로젝트
    윈도우 크롬 원격
    IT자산관리
    #python
    GLPI
    #번역
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
뚤떡이
[JAVA] 자바 함수(메서드)의 기초: 선언부터 사용까지
상단으로

티스토리툴바