1. Java의 함수/메서드

이미 많은 Java 명령을 배웠으므로 꽤 복잡한 프로그램을 작성할 수 있습니다. 한 프로그램에 10, 20, 30줄의 코드는 그다지 큰 프로그램이 아니죠?

그러나 100개 이상의 프로그램은 이제 규모가 크고 코드를 이해하기가 다소 어려울 수 있습니다. 코드가 많은 프로그램 작성 및 읽기를 단순화하기 위해 할 수 있는 일이 있습니까?

예, 방법(또는 기능)이 도움이 될 것입니다.

방법이란 무엇입니까? 매우 간단하게 말해서 메소드는 고유한 이름을 가진 명령 그룹입니다 . 즉, 여러 명령을 하나의 그룹에 넣고 고유한 이름을 부여하기만 하면 됩니다. 그리고 그게 다입니다. 방법이 준비되었습니다.

예:

방법 없이 방법으로
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

왼쪽 열의 프로그램에서 동일한 코드를 세 번 반복합니다. 요점을 설명하기 위해 의도적으로 이렇게 한 것입니다. 그러나 오른쪽 프로그램에서는 반복되는 코드를 별도의 메서드로 옮기고 고유한 이름을 지정했습니다 printWiFi.

그리고 재배치된 코드 대신 printWiFi()메서드를 3번 호출합니다.

오른쪽 열의 프로그램이 실행되면 메소드가 printWiFi()실행될 때마다 printWiFi()메소드 내부의 모든 명령이 실행됩니다. 방금 여러 명령을 단일 그룹으로 결합하는 새 명령(방법)을 만들었습니다.

모든 코드는 별도의 메서드로 분할할 수 있습니다. 이것은 일을 단순화하기 위해 수행됩니다. 아이디어는 하나의 큰 메서드보다 여러 개의 작은 메서드를 갖는 것이 더 낫다는 것입니다. 자신만의 방법을 작성하지 않고 자신만의 프로그램을 작성했던 때가 있었다는 사실에 곧 놀랄 것입니다.


2. Java에서 메서드 선언

그렇다면 방법을 올바르게 작성하는 방법은 무엇입니까?

public static void name()
{
  method body
}

메서드를 선언(생성)할 때 고려해야 할 미묘한 차이가 많이 있지만 기본 사항부터 시작하겠습니다. 가장 간단한 방법을 어떻게 선언할 수 있습니까? 간단한 메서드 선언은 다음과 같습니다.

여기서 name 는 메서드의 고유한 이름이며 method body메서드를 구성하는 명령을 나타냅니다. 단어 public, static, 및 의 의미는 void나중에 설명합니다.

메서드를 생성한 후 다른 메서드에서 호출할 수 있습니다. 메서드 호출은 다음과 같습니다.

name();

name호출하려는 메소드의 고유 이름은 어디에 있습니까? 즉, 메소드 호출에 도달했을 때 실행하려는 명령이 있는 메소드입니다.

프로그램이 메소드 호출에 도달하면 단순히 메소드로 들어가 모든 명령을 실행하고 원래 메소드로 돌아가서 실행을 계속합니다.

지금까지 짐작하셨겠지만 지금까지 배운 대부분의 명령은 우리의 삶을 더 쉽게 만들기 위해 다른 프로그래머가 작성한 방법입니다: , 등 .System.out.println()Thread.sleep()

메서드는 다른 메서드에 대한 호출을 포함할 수 있습니다.

암호 메모
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




printWiFi10Times()메소드 호출 메소드


선언  루프에서 메소드 10회 호출 메소드 선언 화면에 텍스트 표시 :printWiFi10Times


printWiFi()


printWiFi

Wi-Fi

3. 방법에 대한 사실

다음은 메서드에 대한 몇 가지 사실입니다.

사실 1. 메서드는 항상 클래스의 일부입니다.

메서드는 클래스에서만 선언할 수 있습니다. 메서드는 다른 메서드 내에서 선언할 수 없습니다. 메서드는 클래스 외부에서 선언할 수 없습니다.

사실 2. 메서드 이름에는 신성한 의미가 없습니다.

어떤 메서드가 호출되는지는 중요하지 않습니다. 아무 것도 영향을 미치지 않습니다. 주요 방법은 다른 모든 것과 같은 방법입니다. Java 머신이 프로그램 실행을 시작할 메소드에 대해 이 이름이 선택되었을 뿐입니다. 그것에 대해 마법 같은 것은 없습니다.

사실 3. 클래스의 메서드 순서는 중요하지 않습니다.

어떤 순서로든 클래스에 메서드를 작성할 수 있습니다. 이는 프로그램 실행에 어떤 식으로든 영향을 미치지 않습니다. 예:

암호
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

사실 4. 한 메서드 내부의 변수는 다른 메서드의 변수와 어떤 식으로든 관련이 없습니다.

베가스에서 일어난 일은 베가스에 남습니다. 그리고 메서드 내에서 선언된 변수는 메서드 내에서 유지됩니다.

이름이 같은 변수는 인접한 두 메서드에서 선언할 수 있으며 이러한 변수는 서로 관련이 없습니다.


4. 메서드 이름

프로그래밍에서 가장 어려운 두 가지 문제는 메서드에 대한 올바른 이름을 선택하는 것과 변수에 대한 올바른 이름을 선택하는 것이라는 것은 오랫동안 알려져 왔습니다.

실제로 메서드 이름을 올바르게 지정하는 방법에 관한 거의 모든 과학이 등장했습니다. 그리고 각 프로그래밍 언어에는 자체 표준이 있습니다. Java에서는 다음 원칙을 따르는 것이 일반적입니다.

원칙 1. 메서드 이름은 메서드가 수행하는 작업을 간략하게 설명해야 합니다.

그런 다음 코드를 읽는 다른 프로그래머는 메서드 이름을 사용하여 코드가 수행하는 작업을 추측할 수 있습니다. 호출된 메서드의 코드를 매번 볼 필요가 없습니다. 그리고 방법의 목적을 기억하기가 더 쉽습니다.

'프로그램을 절전 모드로 전환'하고 '다음 정수 읽기'에 사용되는 리콜입니다 . 편리하죠?Thread.sleep()Scanner.nextInt()

원칙 2. 메서드 이름은 여러 단어일 수 있습니다.

그러나 이 작업을 수행할 때 몇 가지 제한 사항이 있습니다.

  • 메서드 이름에는 공백을 사용할 수 없습니다. 모든 단어가 함께 작성됩니다.
  • 첫 단어를 제외하고 각 단어는 대문자로 표시됩니다.
  • 메서드 이름은 항상 소문자로 시작합니다.

방법을 기억하십시오 printWiFi10Times. 그 이름은 무엇을 의미합니까? "'WiFi'라는 단어를 10번 표시합니다." 메서드 이름에 많은 단어를 포함해서는 안 됩니다. 이름은 메서드의 본질을 반영해야 합니다.

명명 방법에 대한 이 표준을 CamelCase(대문자는 낙타의 혹과 같다)라고 합니다.

원칙 3. 메서드 이름은 동사로 시작합니다.

메서드는 항상 무언가를 수행하므로 메서드 이름의 첫 번째 단어는 항상 작업입니다.

다음은 메서드에 대한 잘못된 이름입니다. home, cat, car, train, ...;

좋은 이름은 다음과 같습니다. run, execute, print, read, write, ...

원칙 4. 라틴 문자와 숫자만 사용하십시오.

Java는 다양한 언어를 훌륭하게 지원합니다. 변수, 메소드 및 클래스의 이름을 중국어뿐만 아니라 러시아어로 작성할 수 있습니다. 모든 것이 작동합니다!

하지만! System.out.println()방법이 중국어로 작성된다면 Java를 얼마나 오래 공부해야 합니까 ? 지금보다 훨씬 더 오래 걸리죠? 그것이 첫 번째 포인트입니다.

둘째, 많은 소프트웨어 개발 팀이 국제적입니다. 전 세계의 프로그래머가 매우 많은 수의 Java 라이브러리를 사용합니다.

따라서 메서드 이름에는 라틴 문자와 숫자만 사용하는 것이 좋습니다.

중요한:
메서드 이름은 문자로 시작해야 합니다(숫자로 시작할 수 없음).