English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는, 예제를 통해 Java 메서드를 배우고, 메서드를 정의하는 방법 및 Java 프로그램에서 메서드를 사용하는 방법을 배울 것입니다.
수학에서는, 우리는 함수를 연구했을 수 있습니다. 예를 들어, f(x) = x2x는 제곱 값을 반환하는 함수입니다.
If x = 2, then f(2) = 4 If x = 3, f(3) = 9 etc.
또한, 컴퓨터 프로그래밍에서는, 함수는 특정 작업을 수행하는 코드 블록입니다.
객체 지향 프로그래밍에서는, 이는 함수의 용어입니다. 메서드는 클래스에 연결되며, 클래스의 행동을 정의합니다.
메서드를 학습하기 전에, 이해해야 할 것을 확인해 주세요Java 클래스와 객체.
사용자 정의 메서드 또는 기본 라이브러리에서 사용할 수 있는 메서드에 따라 Java에는 두 가지 메서드가 있습니다:
기본 라이브러리 메서드
사용자 정의 메서드
기본 라이브러리 메서드는 Java의 내장 메서드로 언제든지 사용할 수 있습니다. 이 기본 라이브러리는 JVM과 JRE의 Java 아키텍처 파일(JCL)과 함께 나타납니다.*.jar)에 포함되어 있습니다.
예를 들어:
print() - 는 java.io.PrintStream의 메서드로, "…"를 인용부호로 문자열을 인쇄합니다.
sqrt() - 수학 강의의 한 방법입니다. 이는 숫자의 제곱근을 반환합니다.
이는 작동하는 예제입니다:
public class Main { public static void main(String[] args) { //sqrt() 메서드 사용 System.out.print("4의 제곱근은: " + Math.sqrt(4)); } }
출력:
4의 제곱근은: 2.0
우리는 선택한 방법을 사용하여 특정 작업을 수행할 수 있습니다. 이 방법은 사용자 정의 메서드라고 합니다.
이는 우리가 Java로 메서드를 생성하는 방법입니다:
public static void myMethod() { System.out.println("내 함수"); }
여기서는 myMethod()라는 메서드를 생성했습니다. 우리는 메서드 이름 앞에 public, static, void를 사용할 수 있습니다.
public - 접근수정자. 이는 어디서든 이 메서드에 접근할 수 있다는 것을 의미합니다. 더 많은 정보를 얻으려면, 다음을 방문하세요Java 접근 수식자
static - 이는 어떤 객체 없이도 이 메서드에 접근할 수 있다는 것을 의미합니다. 더 많은 정보를 얻으려면, 다음을 방문하세요Java 스태틱 키워드.
void - 이는 이 메서드가 어떤 값도 반환하지 않는다는 것을 의미합니다. 이 내용에 대해 이후에 더 알아보겠습니다.
이는 우리가 메서드를 생성하는 방법의 간단한 예입니다. 그러나, Java에서 메서드 정의의 완전한 문법은 다음과 같습니다:
modifier static returnType nameOfMethod (parameters) { // method body }
여기서는
modifier - 이는 메서드의 접근 수준을 정의합니다. 예를 들어, 공개 메서드, 비공개 메서드 등.
static - static 키워드를 사용하면, 객체를 생성하지 않고도 접근할 수 있습니다.
예를 들어, sqrt()는 Math 클래스의 표준 메서드로, Math.sqrt()를 호출할 때 Math 클래스의 인스턴스를 생성하지 않아도 됩니다.
returnType - 이는 메서드가 반환하는 값을 지정합니다. 예를 들어, 메서드가 int 반환형을 가지고 있다면, 그는 정수 값을 반환합니다.
데이터 타입(int, float, double 등)이나 원시 객체(String, Map, List 등), 또는 다른 내장 및 사용자 정의 객체를 반환할 수 있는 메서드입니다.
이 메서드가 값을 반환하지 않는다면, 그 반환형은 void입니다.
nameOfMethod - 이는identifier,프로그램에서 특정 메서드를 참조하는 데 사용됩니다.
우리는 메서드에 어떤 이름을 주어도 됩니다. 그러나, 그이가 수행하는 작업에 이름을 주는 것이 더 일반적입니다. 예를 들어 calculateArea()، display() 등.
parameters (arguments) - 이들은 메서드에 전달되는 값들입니다. 메서드에 어떤 양의 매개변수를 전달할 수 있습니다.
method body - 이는 특정 작업을 수행하는 프로그래밍 문장을 포함하고 있습니다. 메서드 본문은 괄호로 묶여 있습니다{ }.
지금까지 메서드 정의법을 알게 되었으므로, 그들을 사용하는 방법을 배워야 합니다. 이를 위해, 우리는 이 메서드를 호출해야 합니다. 그렇게 하는 방법은 다음과 같습니다
myMethod();
이 문장은 이전에 선언된 myMethod() 메서드를 호출합니다.
프로그램 코드를 실행하는 동안, 코드에서 myFunction()를 만납니다.
그런 다음 myFunction() 메서드로 접근하여 메서드 본문 내에서 코드를 실행합니다.
메서드 본문이 실행된 후, 프로그램은 원래 상태로 돌아가고 메서드 호출 후 다음 문장을 실행합니다.
Java 프로그램에서 메서드를 사용하는 방법을 보겠습니다.
class Main { public static void main(String[] args) { System.out.println("곧 만날 메서드."); //메서드 호출 myMethod(); System.out.println("메서드가 성공적으로 실행되었습니다!"); } // 메서드 정의 private static void myMethod(){ System.out.println("myMethod() 내부에서 출력!"); } }
출력:
곧 만날 메서드. myMethod() 내부에서 출력! 메서드가 성공적으로 실행되었습니다!
위의 프로그램에서는 myMethod()라는 이름의 메서드가 있습니다. 이 메서드는 매개변수를 받지 않으며, 메서드의 반환 타입은 void(뜻은 값을 반환하지 않음)입니다.
여기서 메서드는 static입니다. 따라서 클래스의 객체를 생성하지 않고 메서드를 호출합니다.
다른 예제를 다시 보겠습니다.
class Main { public static void main(String[] args) { //Output 클래스의 객체를 생성합니다. Output obj = new Output(); System.out.println("곧 메서드를 만나게 됩니다."); //Output类的myMethod() 호출 obj.myMethod(); System.out.println("메서드가 성공적으로 실행되었습니다!"); } } class Output { //public: 이 메서드는 클래스 외부에서 호출할 수 있습니다. public void myMethod() { System.out.println("myMethod() 내부에서 출력."); } }
출력:
곧 메서드를 만나게 됩니다. myMethod() 내부에서 출력. 메서드가 성공적으로 실행되었습니다!
위의 예제에서는 myMethod()라는 이름의 메서드를 생성했습니다. 이 메서드는 Output라는 클래스 내에 위치합니다.
메서드가 static이 아니기 때문에 obj 클래스의 객체를 사용하여 메서드를 호출합니다.
obj.myMethod();
이전에 설명한 것처럼, Java 메서드는 0개나 많은 파라미터를 가질 수 있으며, 그리고 몇 가지 값을 반환할 수도 있습니다.
반환 값을 가진 메서드 예제를 보겠습니다.
class SquareMain { public static void main(String[] args) { int result; //메서드를 호출하여 반환 값을 저장합니다. result = square(); System.out.println("10의 제곱 값은: " + result); } public static int square() { //return 문장 return 10 * 10; } }
출력:
10의 제곱 값입니다: 100
위 프로그램에서는 square() 메서드라는 이름의 메서드를 생성했습니다. 이 메서드는 어떤 매개변수도 받지 않으며, 반환 값은10 *10.
여기서 우리가 언급한 메서드의 반환 타입은 int입니다. 따라서 이 메서드는 항상 정수 값을 반환해야 합니다.
그러나 우리가 볼 수 있듯이 이 메서드의 범위는 제한적입니다. 이는 항상 동일한 값을 반환하기 때문입니다. 지금은 위의 코드 단편을 수정하여 메서드에 전달된 모든 정수의 제곱 값을 항상 반환하도록 하겠습니다.10의 제곱 값입니다。
public class Main { public static void main(String[] args) { int result, n; n = 3; result = square(n); System.out.println("3의 제곱은: " + result); n = 4; result = square(n); System.out.println("4의 제곱은: " + result); } // 메서드 static int square(int i) { return i * i; } }
출력:
3의 제곱은: 9 4의 제곱은: 16
여기서 square()메서드는 매개변수 i를 받아 i의 제곱을 반환합니다. 반환된 값은 변수 result에 저장됩니다.
int 타입의 값을 전달하지 않고 다른 데이터 타입을 전달하면 컴파일러는 오류를 발생시킵니다. 이는 Java가 강타입 언어이기 때문입니다.
메서드 호출 중 getSquare() 메서드에 전달하는 매개변수 n은 실제 매개변수라고 합니다.
result = getSquare(n);
메서드 정의가 받는 매개변수는 형식 매개변수라고 불립니다. 형식 매개변수의 타입은 명시적으로 타입화되어야 합니다.
public static int square(int i) {...}
여러 개의 매개변수를 Java 메서드에 전달할 수도 있습니다. 예를 들어,
public class Main { //메서드 정의 public static int getIntegerSum (int i, int j) { return i + j; } // 메서드 정의 public static int multiplyInteger (int x, int y) { return x * y; } public static void main(String[] args) { //메서드 호출 System.out.println("10 + 20 = " + getIntegerSum(10, 20)); System.out.println("20 x 40 = " + multiplyInteger(20, 40)); } }
출력:
10 + 20 = 30 20 x 40 = 800
주의: 실제 매개변수와 형식 매개변수의 데이터 타입은 일치해야 합니다. 즉, 첫 번째 실제 매개변수의 데이터 타입은 첫 번째 형식 매개변수의 데이터 타입과 일치해야 합니다. 마찬가지로, 두 번째 실제 매개변수의 타입은 두 번째 형식 매개변수의 타입과 일치해야 합니다. 이렇게 계속 이어갑니다.
1. 주요 장점은코드 재사용성。한 번 작성한 메서드를 여러 번 사용할 수 있습니다. 전체 코드를 매번 다시 작성할 필요는 없습니다. 이를 '한 번 작성하고 여러 번 재사용”。예를 들어,
public class Main { //메서드 정의 private static int getSquare(int x){ return x * x; } public static void main(String[] args) { for (int i = 1; i <= 5; i++) { //메서드 호출 int result = getSquare(i); System.out.println("" + i + " 의 제곱은: " + result); } } }
출력:
1 의 제곱은: 1 2 의 제곱은: 4 3 의 제곱은: 9 4 의 제곱은: 16 5 의 제곱은: 25
위의 프로그램에서, getSquare() 메서드를 생성하여 숫자의 제곱을 계산했습니다. 여기서, 같은 메서드를 사용하여6의 숫자의 제곱
따라서, 우리는 반복적으로 같은 메서드를 사용합니다.
메서드2코드를 더 가독적으로 만듭니다.쉽게 읽을 수 있습니다.,디버깅이 더 쉬워집니다.예를 들어, getSquare() 메서드는 매우 읽혀서 이 메서드가 숫자의 제곱을 계산할 것을 알 수 있습니다.