1. Javaの関数/メソッド

すでに多くの Java コマンドを学習しているので、かなり複雑なプログラムを作成できることになります。プログラム内の 10、20、30 行のコードは、それほど大きなプログラムではありません。

しかし、100 以上のプログラムは大きくなり、コードを理解するのがかなり難しくなることがあります。大量のコードを含むプログラムの作成と読み取りを何とか簡素化するためにできることはありますか?

はい、メソッド (または関数) がこれに役立ちます。

メソッドとは何ですか? 非常に簡単に言うと、メソッドとは、一意の名前を持つコマンドのグループです。言い換えれば、複数のコマンドを 1 つのグループにまとめ、一意の名前を付けるだけです。これでメソッドの準備は完了です。

例:

メソッドなしで メソッド付き
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");
   }
}

左の列のプログラムでは、同じコードを 3 回繰り返しています。これは、要点を説明するために意図的に行っています。しかし、右側のプログラムでは、繰り返されるコードを別のメソッドに移動し、一意の名前を付けました — printWiFi

そして、再配置されたコードの代わりに、printWiFi()メソッドを 3 回呼び出します。

右の列のプログラムを実行すると、メソッドがprintWiFi()実行されるたびに、メソッド内のすべてのコマンドprintWiFi()が実行されます。複数のコマンドを 1 つのグループに結合して、新しいコマンド (メソッド) を作成しました。

どのコードも個別のメソッドに分割できます。これは物事を単純化するために行われます。つまり、大きなメソッドを 1 つ使用するよりも、小さなメソッドを多数使用した方がよいという考えです。独自のメソッドを作成せずに独自のプログラムを作成した時代があったことにすぐに驚かれるでしょう。


2. Java でのメソッドの宣言

では、メソッドを正しく記述するにはどうすればよいでしょうか?

public static void name()
{
  method body
}

メソッドを宣言 (作成) する際には考慮すべきニュアンスがたくさんありますが、基本的なことから始めましょう。最も単純なメソッドを宣言するにはどうすればよいでしょうか? 単純なメソッド宣言は次のようになります。

ここでname 、 はメソッドの一意の名前で、method bodyメソッドを構成するコマンドを表します。publicstatic、 という単語の意味について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. メソッドの名前には神聖な意味はありません。

どのメソッドが呼び出されるかは問題ではありません。それは何も影響しません。main メソッドは、他のすべてのメソッドと同様のメソッドです。この名前は、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. 1 つのメソッド内の変数は、他のメソッドの変数とはまったく関係がありません。

ラスベガスで起こったことはラスベガスに残ります。また、メソッド内で宣言された変数はメソッド内に残ります。

同じ名前の変数を 2 つの隣接するメソッドで宣言できますが、これらの変数は相互に関連しません。


4. メソッド名

プログラミングにおける 2 つの最も難しい問題は、メソッドの正しい名前の選択と変数の正しい名前の選択であることは長い間知られていました。

実際、メソッドに正しく名前を付ける方法に関しては、科学のほぼ全体が明らかになりました。そして、各プログラミング言語には独自の規格があります。Java では、次の原則に従うのが通例です。

原則 1.メソッド名は、そのメソッドが何を行うのかを簡潔に説明する必要があります。

そうすれば、コードを読む別のプログラマは、メソッドの名前を頼りに、コードが何を行うかを推測できます。呼び出されるメソッドのコードを毎回確認する必要はありません。また、メソッドの目的も覚えやすくなります。

これは「プログラムをスリープさせる」ために使用され、「次の整数を読み取る」ために使用されることを思い出してください。便利ですよね?Thread.sleep()Scanner.nextInt()

原則 2.メソッド名は複数の単語にすることができます。

ただし、これを行う場合にはいくつかの制限があります。

  • メソッド名にスペースを含めることはできません。すべての単語が一緒に書かれます。
  • 最初の単語を除いて、各単語は大文字で表記されます。
  • メソッド名は常に小文字で始まります

メソッドを思い出してくださいprintWiFi10Times。その名前はどういう意味ですか?「『WiFi』という単語を10回表示します」。メソッドの名前には多くの単語を含めるべきではありません。名前はその本質そのものを反映している必要があります。

この命名方法の標準は、キャメルケース (大文字はラクダのこぶに似ています) と呼ばれます。

原則 3. メソッド名は動詞で始まります。

メソッドは常に何かを実行するため、メソッド名の最初の単語は常にアクションになります。

以下に、メソッドの不適切な名前をいくつか示します。homecatcartrain、 ...;

良い名前は次のとおりです: runexecuteprintreadwrite...

原則 4. ラテン文字と数字のみを使用してください。

Java はさまざまな言語に対する優れたサポートを備えています。変数、メソッド、クラスの名前は中国語だけでなくロシア語でも書くことができます。すべてうまくいきます。

しかし!System.out.println()Javaのメソッドが中国語で書かれている場合、どれくらいの期間 Java を勉強する必要がありますか? 今よりずっと長いですよね?それが最初のポイントです。

第二に、ソフトウェア開発チームの多くは国際的です。非常に多くの Java ライブラリが世界中のプログラマによって使用されています。

したがって、メソッド名にはラテン文字と数字のみを使用することをお勧めします。

重要:
メソッドの名前は文字で始める必要があります (数字で始めることはできません)。