[Explained] Java에서 메서드를 호출하는 방법

Java의 메서드는 필요에 따라 실행할 수 있는 재사용 가능한 코드 조각일 뿐입니다.

메서드는 종종 함수라고 부르며 두 단어가 같은 의미로 사용된다는 것을 알 수 있습니다.

방법 또는 기능 사용의 중요성

소프트웨어 개발자는 문제를 더 작은 문제로 나누고 문제를 전체적으로 해결하기 위해 해결함으로써 문제를 해결합니다. 이 아이디어는 모듈식 아키텍처로 알려진 것으로 이어졌습니다. 이 접근 방식에서 개발자는 더 큰 문제를 해결하기 위해 코드를 이동하고 실행할 수 있는 조각으로 나눕니다.

방법은 전체 응용 프로그램의 다른 인스턴스에서 사용할 수 있기 때문에 유리합니다. 문장에서 불필요한 공백을 모두 제거하는 유틸리티 메서드를 만들고 싶다고 가정해 보겠습니다. 애플리케이션 어딘가에 로직이 필요할 때마다 로직을 작성하는 것이 이치에 맞습니까?

아니면 메서드를 한 번 만든 다음 애플리케이션의 여러 위치에서 다른 입력으로 동일한 메서드를 사용하는 것이 이치에 맞습니까? 후자는 분명히 더 좋고 더 효율적입니다.

뿐만 아니라 Java의 액세스 수정자의 도움으로 응용 프로그램에서 실제로 공유할 수 있는 메서드와 공유할 수 없는 메서드를 제어할 수도 있습니다. 또한 코드를 더 읽기 쉽고 조직적이며 구조화하는 데 도움이 됩니다.

Java의 메소드 유형

Java에는 사용자 정의 및 사전 정의 메소드의 두 가지 유형의 메소드가 있습니다. 이름에서 알 수 있듯이 사용자 정의 메서드는 프로그래머가 명시적으로 정의합니다. 사용자 정의 방법의 예는 다음과 같습니다.

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

반면에 사전 정의된 메소드 또는 내장 메소드는 이미 Java 프로그래밍 언어의 일부로 존재합니다. 기본 제공 메서드의 예는 다음과 같습니다.

String text = "Hello World";
text.toLowerCase();

여기에서 toLowerCase는 코드의 어디에서나 호출할 수 있는 내장 Java 메서드입니다.

  iPhone을 웹캠으로 사용하는 방법

Java의 메소드 구조

Java에서 메소드의 이상적인 구조를 살펴보겠습니다.

[access_modifier] [return_type] method_name(...parameters) {
    // method body
}

메서드의 이러한 구성 요소는 순서대로 지정해야 합니다. 예를 들어 메서드는 반환 유형 전에 정의할 수 없습니다. 메서드를 구성하는 각 구성 요소의 기능과 함께 작동하는 방식을 알아봅니다.

#1. 액세스 수정자

Java에서 액세스 한정자는 메서드, 클래스, 인터페이스, 변수 등의 가시성을 정의하는 키워드입니다. 기술적으로 Java에는 5가지 액세스 한정자가 있습니다.

  • 공개: 모든 클래스에 액세스 가능
  • private: 자신이 속한 클래스만 접근 가능
  • default: 기본 액세스 한정자는 동일한 패키지 내에서만 메서드에 액세스할 수 있는 protected 한정자와 비슷합니다.
  • protected: 하위 클래스 또는 특정 패키지 내에서 액세스 가능
public int sum(a int, b int) {
    return a + b;
}

여기에서 calc 메서드는 액세스 수정자를 public으로 갖고 있으므로 어디에서나 액세스할 수 있습니다.

#2. 반환 유형

함수의 반환 유형은 함수가 반환할 데이터의 데이터 유형을 정의합니다. 함수에서 아무 것도 반환하지 않으려면 이 경우 void 반환 유형을 지정하십시오. void 유형이 지정된 경우 return 키워드를 사용할 수 없습니다. 함수를 정의하기 위해서는 리턴 타입 지정이 필수입니다.

public void log(String text) {
    System.out.println(text);
}

위의 메서드는 아무 것도 반환하지 않습니다. 콘솔에 텍스트를 인쇄하는 것입니다. 따라서 void 반환 유형입니다.

#삼. 방법 이름

클래스에서 메서드를 식별하고 개체에서 메서드를 호출하는 데 사용됩니다.

class Print {
    void log(String text) {
        System.out.println(text);
    }
}

Print p = new Print();
p.log("hello world"); // outputs "hello world"

#4. 매개변수

메소드에 정의된 매개변수에 따라 메소드에 인수를 전달할 수 있습니다. 예를 들어 메서드에 대해 정의된 두 개의 매개 변수가 있는 경우 해당 데이터 유형이 있는 두 개의 인수만 전달할 수 있습니다. 그리고 정의된 순서대로 인수를 전달해야 합니다.

class Calc {
    int sum(a int, b int) {
        return a + b;
     }
}

Calc cal = new Calc();
cal.sum(3, 7); // will return 10

#5. 몸

메서드 본문에는 특정 결과를 반환하는 데 사용되는 프로그래밍 논리가 포함됩니다. 메서드가 수행해야 하는 기능을 수행합니다. 중괄호로 묶여 있으며 종종 코드 블록이라고 합니다.

class Calc {
    int sum(a int, b int) {
        return a + b;
     }
}

여기서 중괄호 안의 return 문은 sum 메서드의 본문입니다.

  전문가를 위한 강력한 사진 편집기 – Luminar Neo [AI-Powered]

Java에서 메서드 호출

Java에서 메소드를 호출하는 것은 매우 간단합니다. 메서드가 있는 클래스의 인스턴스에서 이름으로 메서드를 호출할 수 있습니다.

정적 메서드는 해당 메서드가 있는 클래스의 개체 인스턴스 없이 호출할 수 있습니다. 비정적 메서드는 클래스의 인스턴스, 즉 개체에서 엄격하게 호출되어야 합니다.

정적 메서드의 경우 호출은 다음과 같습니다.

class Math {
    public static int sum(int a, int b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        int add = Math.sum(5, 2);
        System.out.println(add);
    }
}

위 코드에서 Math 클래스 내부의 sum 메서드는 정적 메서드입니다. 이것이 바로 Math 클래스의 객체(인스턴스)를 생성할 필요가 없고 클래스 자체에서 메서드를 호출하기만 하면 되는 이유입니다.

반대로 비정적 메서드의 호출은 다음과 같습니다.

class Math {
    public int sum(int a, int b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        int add = new Math().sum(5, 2);
        System.out.println(add);
    }
}

여기서는 Math 클래스에서 새 개체를 만든 다음 sum 메서드를 호출합니다. 그 이유는 비정적 메서드는 클래스가 인스턴스화될 때까지 인스턴스화되지 않기 때문입니다.

이것이 Java에서 메소드를 호출하는 방법입니다.

마지막 말

Java뿐만 아니라 모든 프로그래밍 언어에서 메서드는 코드를 구성하고 여러 위치에서 재사용할 수 있는 좋은 방법입니다. 방법은 모듈식 구성 요소 기반 아키텍처의 빌딩 블록입니다.

Java를 사용하는 경우 Java의 예외 처리에 대해 자세히 알아보세요.