1. Fungsi/kaedah dalam Java

Anda telah mempelajari banyak arahan Java, yang bermaksud anda boleh menulis beberapa program yang agak rumit. 10, 20, 30 baris kod dalam program bukanlah program yang sangat besar, bukan?

Tetapi program 100+, kini besar, dan agak sukar untuk memahami kod tersebut. Adakah terdapat apa-apa yang boleh anda lakukan untuk memudahkan menulis dan membaca program yang mempunyai banyak kod?

Ya, dan kaedah (atau fungsi) akan membantu kami dengan ini.

Apakah kaedah? Secara ringkasnya, kaedah ialah sekumpulan arahan yang mempunyai nama unik . Dalam erti kata lain, kami hanya meletakkan beberapa arahan ke dalam satu kumpulan dan memberikannya nama yang unik. Dan itu sahaja - kaedahnya sudah sedia.

Contoh:

Tanpa kaedah Dengan kaedah
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");
   }
}

Dalam program di lajur kiri, kami mengulangi kod yang sama tiga kali — kami melakukan ini dengan sengaja untuk menggambarkan sesuatu perkara. Tetapi dalam program di sebelah kanan, kami mengalihkan kod berulang ke kaedah yang berasingan dan memberikannya nama unik — printWiFi.

Dan bukannya kod yang dipindahkan, kami memanggil printWiFi()kaedah 3 kali.

Apabila program dalam lajur di sebelah kanan dijalankan, setiap kali kaedah printWiFi()dilaksanakan, semua arahan di dalam printWiFi()kaedah dilaksanakan. Kami baru sahaja mencipta arahan baharu (kaedah), menggabungkan beberapa arahan ke dalam satu kumpulan.

Sebarang kod boleh dibahagikan kepada kaedah berasingan. Ini dilakukan untuk memudahkan perkara: ideanya ialah lebih baik mempunyai banyak kaedah kecil daripada satu kaedah besar. Anda tidak lama lagi akan terkejut bahawa pernah ada masa anda menulis program anda sendiri tanpa menulis kaedah anda sendiri.


2. Mengisytiharkan kaedah dalam Java

Jadi bagaimana anda menulis kaedah anda dengan betul?

public static void name()
{
  method body
}

Terdapat banyak nuansa yang perlu dipertimbangkan semasa mengisytiharkan (mencipta) kaedah, tetapi kita akan mulakan dengan asasnya. Bagaimanakah kita boleh mengisytiharkan kaedah yang paling mudah? Pengisytiharan kaedah mudah kelihatan seperti ini:

Di manakah name nama unik kaedah dan method bodymewakili arahan yang membentuk kaedah. Maksud perkataan public, static, dan voidakan dibincangkan kemudian.

Selepas kami mencipta kaedah, kami boleh memanggilnya dalam kaedah kami yang lain. Panggilan kaedah kelihatan seperti ini:

name();

Di manakah namenama unik kaedah yang ingin kita panggil, iaitu kaedah yang arahannya ingin kita laksanakan apabila kita tiba di panggilan kaedah.

Apabila program mencapai panggilan kaedah, ia hanya akan melangkah ke kaedah, melaksanakan semua arahannya, kembali kepada kaedah asal, dan meneruskan pelaksanaan.

Seperti yang mungkin anda duga sekarang, kebanyakan arahan yang telah kami pelajari setakat ini hanyalah kaedah yang ditulis oleh pengaturcara lain untuk menjadikan hidup kita lebih mudah: , , dsb.System.out.println()Thread.sleep()

Kaedah boleh mengandungi panggilan ke kaedah lain:

Kod Catatan
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");
   }
}




Panggil printWiFi10Times()kaedah


Isytihar printWiFi10Timeskaedah


Panggil printWiFi() kaedah 10 kali dalam satu gelung


Isytiharkan printWiFikaedah

Paparkan teks pada skrin:
Wi-Fi

3. Fakta tentang kaedah

Berikut adalah beberapa lagi fakta tentang kaedah:

Fakta 1. Kaedah sentiasa sebahagian daripada kelas.

Kaedah hanya boleh diisytiharkan dalam kelas. Kaedah tidak boleh diisytiharkan dalam kaedah lain. Kaedah tidak boleh diisytiharkan di luar kelas.

Fakta 2. Nama kaedah tidak mempunyai makna suci.

Tidak kira kaedah apa yang dipanggil — itu tidak menjejaskan apa-apa. Kaedah utama adalah kaedah sama seperti semua yang lain. Cuma nama ini dipilih untuk kaedah dari mana mesin Java akan memulakan pelaksanaan program. Tiada apa-apa yang ajaib mengenainya.

Fakta 3. Susunan kaedah dalam kelas tidak penting.

Anda boleh menulis kaedah anda dalam kelas dalam sebarang susunan — ini tidak akan menjejaskan pelaksanaan program dalam apa jua cara. Contoh:

Kod
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();
   }
}

Fakta 4. Pembolehubah dalam satu kaedah tidak berkaitan dalam apa jua cara dengan pembolehubah kaedah lain.

Apa yang berlaku di Vegas, kekal di Vegas. Dan pembolehubah yang diisytiharkan di dalam kaedah kekal di dalam kaedah.

Pembolehubah dengan nama yang sama boleh diisytiharkan dalam dua kaedah bersebelahan, dan pembolehubah ini tidak berkaitan antara satu sama lain dalam apa jua cara.


4. Nama kaedah

Telah lama diketahui bahawa dua masalah paling sukar dalam pengaturcaraan ialah memilih nama yang sesuai untuk kaedah dan memilih nama yang betul untuk pembolehubah.

Malah, hampir keseluruhan sains telah muncul mengenai cara menamakan kaedah dengan betul. Dan setiap bahasa pengaturcaraan mempunyai piawaian sendiri. Di Jawa, adalah kebiasaan untuk mengikuti prinsip-prinsip ini:

Prinsip 1. Nama kaedah harus menerangkan secara ringkas apa yang dilakukan oleh kaedah tersebut.

Kemudian pengaturcara lain yang membaca kod anda boleh bergantung pada nama kaedah untuk meneka apa yang dilakukan oleh kod tersebut. Dia tidak perlu melihat kod kaedah yang dipanggil setiap kali. Dan tujuan kaedah lebih mudah diingati.

Ingat yang digunakan untuk 'meletakkan atur cara' dan digunakan untuk 'membaca integer seterusnya'. Mudah, bukan?Thread.sleep()Scanner.nextInt()

Prinsip 2. Nama kaedah boleh terdiri daripada pelbagai perkataan.

Walau bagaimanapun, terdapat beberapa batasan apabila melakukan ini:

  • Anda tidak boleh mempunyai ruang dalam nama kaedah: semua perkataan ditulis bersama.
  • Setiap perkataan ditulis dengan huruf besar, kecuali yang pertama.
  • Nama kaedah sentiasa bermula dengan huruf kecil

Ingat printWiFi10Timeskaedah. Apakah maksud nama itu? "Paparkan perkataan 'WiFi' 10 kali". Anda tidak sepatutnya memasukkan banyak perkataan dalam nama kaedah: nama itu harus mencerminkan intipatinya.

Piawaian untuk kaedah penamaan ini dipanggil CamelCase (Huruf besar adalah seperti bonggol unta).

Prinsip 3. Nama kaedah bermula dengan kata kerja.

Kaedah sentiasa melakukan sesuatu, jadi perkataan pertama dalam nama kaedah sentiasa tindakan.

Berikut ialah beberapa nama buruk untuk kaedah: home, cat, car, train, ...;

Beberapa nama baik ialah: run, execute, print, read, write, ...

Prinsip 4. Gunakan huruf dan nombor Latin sahaja.

Java mempunyai sokongan yang sangat baik untuk bahasa yang berbeza. Anda boleh menulis nama pembolehubah, kaedah dan kelas dalam bahasa Rusia serta Cina — semuanya akan berfungsi!

Tetapi! Berapa lama anda perlu belajar Java, jika System.out.println()kaedah itu ditulis dalam bahasa Cina? Lebih lama daripada sekarang, bukan? Itu point pertama.

Kedua, banyak pasukan pembangunan perisian adalah antarabangsa. Sebilangan besar perpustakaan Java digunakan oleh pengaturcara dari seluruh dunia.

Oleh itu, adalah disyorkan untuk menggunakan hanya huruf Latin dan nombor dalam nama kaedah.

Penting:
Nama kaedah mesti bermula dengan huruf (ia tidak boleh bermula dengan nombor).