Coretan kuliah dengan mentor sebagai sebahagian daripada kursus Universiti Codegym. Daftar untuk kursus penuh.


"Awak sudah di sini, Amigo? Saya tahu awak sudah belajar banyak arahan Java. Awak hampir mencapai tahap saya!"

"Betul ke, Diego?"

"Sudah tentu tidak, ha-ha. Anda masih perlu banyak belajar dan belajar. Namun, anda sudah cukup tahu untuk menulis program yang agak kompleks. 10, 20, 30 baris kod dalam program bukanlah program yang sangat besar, betul ke?"

"Saya rasa awak betul. Lebih-lebih lagi jika awak meletakkan pendakap kerinting pada baris yang berasingan."

"Tetapi program 100+ baris, kini ia besar. Malah kami robot mempunyai masa yang agak sukar untuk memahami kod sedemikian. Apa pendapat anda, adakah terdapat apa-apa yang boleh anda lakukan untuk memudahkan menulis dan membaca program yang mempunyai banyak kod?

"Saya sangat berharap begitu!"

"Harapan anda tidak sia-sia. Ia mungkin untuk memudahkan program, dan kaedah ada di sini untuk membantu kami dengan ini. Mereka kadang-kadang dipanggil fungsi .

"Fungsi, kaedah... Eh, apakah itu?"

"Secara ringkasnya, kaedah ialah sekumpulan perintah 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 — boom — kami mempunyai kaedah. Kebanyakan selalunya, arahan ini dikumpulkan mengikut beberapa rasional untuk menyelesaikan tugas yang kecil dan khusus. Contohnya, 'kaedah untuk mencetak baris daripada fail'. Atau 'kaedah untuk menaikkan nombor kepada eksponen'.

"Jadi, kita bahagikan program kepada kaedah?"

"Ya, dan ia memudahkan kod.

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 atur cara di lajur kiri, kami mengulangi kod yang sama tiga kali — kami melakukan ini dengan sengaja untuk menggambarkan satu titik. Tetapi dalam atur cara di sebelah kanan, kami mengalihkan kod berulang itu ke dalam kaedah yang berasingan dan memberikannya nama yang 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 mencipta arahan (kaedah) baharu, menggabungkan beberapa arahan ke dalam satu kumpulan.

"Sebarang kod boleh dibahagikan kepada kaedah berasingan. Ini dilakukan untuk memudahkan perkara: ideanya ialah lebih baik untuk mempunyai banyak kaedah kecil daripada satu kaedah besar.

"Ia adalah idea yang bagus untuk membahagikan program kepada kaedah.

"Tidak lama lagi anda akan ingat dengan hairan bagaimana anda pernah menulis program tanpa membuat kaedah anda sendiri."

"Saya bersedia untuk mendengar dan cuba menulis kaedah! Cuma beritahu saya bagaimana untuk melakukannya."

Mengisytiharkan kaedah dalam Java

"Bagaimana kita boleh mengisytiharkan kaedah paling mudah? Begini caranya:

public static void name()
{
  method body
}

Di manakah namenama 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 kami panggil, iaitu kaedah yang arahannya ingin kami laksanakan apabila kami 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.

"Dan sekarang, Amigo, lihat dengan mata baru pada arahan yang telah kamu pelajari. Contohnya, . Adakah apa-apa yang terlintas di fikiran tentang apa sebenarnya ini?"System.out.println()

"Adakah anda mengatakan bahawa semua arahan ini hanyalah kaedah yang ditulis oleh pengaturcara lain?"

"Bukan semua, tetapi banyak daripada mereka. Ya, betul-betul! Yang lain menulisnya untuk memudahkan hidup kita."

"Begitu public static void main(String[] args)juga satu kaedah... Sekarang ia lebih masuk akal!"

"Sudah tentu, ia benar! Ia pengaturcaraan! Ternyata kaedah utama — alfa dan omega program — 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");
   }
}




Kami memanggil print10TimesWiFi()kaedah


Kami mengisytiharkan print10TimesWiFikaedah


Kami memanggil printWiFi() kaedah 10 dalam gelung


Kami mengisytiharkan printWiFikaedah

Kami memaparkan " Wi-Fi" pada skrin

Fakta tentang kaedah

"Saya telah mengetepikan beberapa fakta berguna tentang kaedah untuk anda. Di sini, nikmati:

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. Apa yang dikatakan, lebih baik memilih nama kaedah yang sekurang-kurangnya menjelaskan sedikit untuk tujuannya. Saya akan bercakap tentang ini sedikit kemudian.

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.

Nama kaedah

"Jadi... saya berjanji untuk memberitahu anda tentang 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."

"Saya tidak pernah fikir ia begitu sukar!"

"Anda hanya tidak tahu banyak tentang kod samar orang lain, di mana pembolehubah dan kaedah mempunyai nama sewenang-wenangnya. Cuba cari kod itu. Malah, hampir keseluruhan sains telah muncul mengenai cara menamakan kaedah dengan betul. Dan setiap bahasa pengaturcaraan mempunyai piawaiannya sendiri.

"Di Jawa, adalah kebiasaan untuk mengikuti 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.

Contohnya, digunakan untuk 'meletakkan atur cara' dan digunakan untuk 'membaca integer seterusnya'. Mudah, ya?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 print10TimesWiFikaedah. 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. Nama kaedah hanya menggunakan huruf dan nombor Latin.

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! Bayangkan 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).

"Ini semua adalah prinsip asas yang mengawal penamaan kaedah dalam Java. Pelajaran sudah tamat sekarang. Pergi selesaikan tugas!"

"Saya sudah berlari, Diego!"


Coretan kuliah dengan mentor sebagai sebahagian daripada kursus Universiti Codegym. Daftar untuk kursus penuh.