Java 메소드(Method)와 함수(Function)

fever·2023년 11월 29일

Java 기초

목록 보기
3/10

메소드(Method)란?

  • 클래스 내에 정의된 함수로, 특정 작업을 수행하는 코드 블록
  • 메소드를 사용하여 코드의 재사용성을 높이고 프로그램을 모듈화해서 관리
  • 메소드 형식 접근제한자 반환타입 메소드이름 (매개변수타입 매개변수 이름)

✏️ 메소드 예제

public class Calculator {

    public static int add(int num1, int num2) {
        return num1 + num2; // (2) 5,3을 더한 값을 반환
    }

    public static void main(String[] args) {
        int result = add(5, 3); //(1) add 메서드에 int 5, 3을 전달
        System.out.println("덧셈 결과: " + result); (3) 반환값 출력
    }
}

메소드(Method) 세부 특징

1. 가시성 (Visibility)
메서드는 가시성을 통해 접근 제어 가능. public, private, protected, default 등의 키워드를 사용하여 메서드에 대한 접근 권한을 지정할 수 있다.

public class MyClass {
    // public 메서드
    public void publicMethod() {
        // 메서드 내용
    }

    // private 메서드
    private void privateMethod() {
        // 메서드 내용
    }
}

2. 정적 메서드 (Static Method)
정적 메서드는 객체의 인스턴스에 속하지 않고 클래스에 속해있고, 클래스 이름을 통해 직접 호출 가능.

public class MathOperations {
    public static int add(int a, int b) {
    //static 사용으로 객체를 생성하지 않아도 바로 사용 가능.
        return a + b;
    }
}

// 정적 메서드 호출
int result = MathOperations.add(3, 5);

3. 가변인자 (Varargs)
가변인자를 사용하여 동적으로 인자를 받을 수 있으며, 메서드 내에서 사용가능.

public class VariableArguments {
    public static int sum(int... numbers) {
        int result = 0;
        for (int num : numbers) {
            result += num;
        }
        return result;
    }
}

// 가변인자를 이용한 메서드 호출
int total = VariableArguments.sum(1, 2, 3, 4, 5);

4. 반환값 (Return Value)
실행 결과로 값을 반환할 수 있으며 반환 값이 없을 경우엔 void로 나타낸다.
반환이 있다면 return 사용.

public class Example {
    public int multiply(int a, int b) {
        return a * b;
        //입력받은 a,b를 곱해서 반환한다.
    }
}

5. 다형성

  • 오버로딩: 같은 이름의 메서드라도 매개변수의 개수나 타입이 다르면 다른 메서드로 인식
public class OverloadingExample {
    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }
}
  • 오버라이딩: 자식 클래스에서 부모 클래스의 메서드를 재정의 가능
public class Parent {
    public void display() {
        System.out.println("부모입니다.");
    }
}

public class Child extends Parent {
    @Override
    public void display() { //부모와 같은 메서드의 이름 사용, 내용을 재 정의.
        System.out.println("재정의합니다.");
    }
}

함수와 메서드의 차이

기본적으로 함수는 언어의 일부로 독립적으로 존재하며, 메서드는 클래스 또는 객체에 종속된 함수를 의미한다.

profile
선명한 삶을 살기 위하여

1개의 댓글

comment-user-thumbnail
2023년 12월 7일

다음화는 언제 올라오나요??

답글 달기