Kaedah di Jawa

1. Pengenalan

Di Jawa, kaedah adalah di mana kita menentukan logik perniagaan aplikasi. Mereka menentukan interaksi antara data yang dilampirkan dalam objek.

Dalam tutorial ini, kita akan melalui sintaks kaedah Java, definisi kaedah tandatangan, dan cara memanggil dan memuatkan kaedah .

2. Sintaks Kaedah

Pertama, kaedah terdiri daripada enam bahagian:

  • Akses pengubah: secara pilihan kita dapat menentukan dari mana kod seseorang dapat mengakses kaedah
  • Jenis pengembalian : jenis nilai yang dikembalikan dengan kaedah, jika ada
  • Pengenal kaedah: nama yang kami berikan kepada kaedah
  • Senarai parameter: senarai input yang dipisahkan koma pilihan untuk kaedah tersebut
  • Senarai pengecualian: senarai pengecualian pilihan yang boleh dibuang oleh kaedah ini
  • Badan: definisi logik (boleh kosong)

Mari lihat contoh:

Mari kita perhatikan lebih terperinci setiap enam bahagian kaedah Java ini.

2.1. Pengubah Akses

Pengubah akses membolehkan kita menentukan objek mana yang dapat mengakses kaedah tersebut. Terdapat empat kemungkinan pengubah akses: umum, dilindungi, peribadi , dan lalai (juga disebut paket-peribadi ).

Kaedah juga boleh merangkumi kata kunci statik sebelum atau selepas pengubah akses. Ini bermaksud bahawa kaedah itu termasuk dalam kelas dan bukan pada contoh, dan oleh itu, kita boleh memanggil kaedah tersebut tanpa membuat contoh kelas. Kaedah tanpa kata kunci statik dikenali sebagai kaedah contoh dan hanya boleh dipanggil pada contoh kelas.

Mengenai prestasi, kaedah statik akan dimuat ke dalam memori sekali sahaja - semasa memuatkan kelas - dan dengan itu lebih cekap memori.

2.2. Jenis Pulangan

Kaedah boleh mengembalikan data ke kod dari mana mereka dipanggil. Kaedah boleh mengembalikan nilai primitif atau rujukan objek, atau tidak dapat mengembalikan apa-apa jika kita menggunakan kata kunci batal sebagai jenis pengembalian.

Mari lihat contoh kaedah kekosongan :

public void printFullName(String firstName, String lastName) { System.out.println(firstName + " " + lastName); }

Sekiranya kita menyatakan jenis pengembalian, maka kita harus menentukan pernyataan pengembalian dalam badan kaedah. Setelah pernyataan pengembalian telah dilaksanakan, pelaksanaan badan kaedah akan selesai dan jika ada lebih banyak pernyataan, ini tidak akan diproses.

Sebaliknya, kaedah void tidak mengembalikan nilai dan, dengan itu, tidak mempunyai pernyataan pengembalian .

2.3. Pengecam Kaedah

Pengecam kaedah adalah nama yang kami tetapkan untuk spesifikasi kaedah. Merupakan amalan yang baik untuk menggunakan nama maklumat dan deskriptif. Perlu disebutkan bahawa pengecam kaedah boleh mempunyai maksimum 65536 aksara (walaupun nama panjang).

2.4. Senarai Parameter

Kita dapat menentukan nilai input untuk suatu metode dalam daftar parameternya, yang dilampirkan dalam tanda kurung. Kaedah boleh mempunyai 0 hingga 255 parameter yang dibatasi oleh koma. Parameter boleh berupa objek, primitif atau penghitungan. Kita boleh menggunakan anotasi Java pada tingkat parameter kaedah (misalnya anotasi Spring @RequestParam ).

2.5. Senarai Pengecualian

Kita dapat menentukan pengecualian mana yang dilemparkan dengan kaedah dengan menggunakan klausa lemparan . Sekiranya terdapat pengecualian yang diperiksa, kami mesti memasukkan kod tersebut dalam klausa cubaan tangkapan atau kami mesti memberikan klausa lemparan dalam tandatangan kaedah.

Oleh itu, mari kita lihat varian kaedah kami yang lebih kompleks, yang memberikan pengecualian yang diperiksa:

public void writeName(String name) throws IOException { PrintWriter out = new PrintWriter(new FileWriter("OutFile.txt")); out.println("Name: " + name); out.close(); }

2.6. Kaedah Kaedah

Bahagian terakhir kaedah Java adalah badan kaedah, yang mengandungi logik yang ingin kita laksanakan. Dalam badan kaedah, kita dapat menulis sebilangan baris kod yang kita mahukan - atau sama sekali tidak dalam kes kaedah statik . Sekiranya kaedah kami menyatakan jenis pengembalian, maka kaedah kaedah mesti mengandungi pernyataan pengembalian.

3. Tandatangan Kaedah

Sesuai definisinya, tandatangan kaedah hanya terdiri dari dua komponen - nama dan senarai parameter kaedah .

Oleh itu, mari tulis kaedah mudah:

public String getName(String firstName, String lastName) { return firstName + " " + middleName + " " + lastName; }

Tandatangan kaedah ini adalah getName (String firstName, String lastName) .

Pengecam kaedah boleh menjadi pengecam apa pun. Namun, jika kita mengikuti konvensi pengkodean Java yang umum, pengenal kaedah harus berupa kata kerja dalam huruf kecil yang dapat diikuti oleh kata sifat dan / atau kata nama.

4. Memanggil Kaedah

Sekarang, mari kita terokai bagaimana memanggil kaedah di Java . Mengikuti contoh sebelumnya, mari kita anggap bahawa kaedah tersebut dilampirkan dalam kelas Java yang disebut PersonName :

public class PersonName { public String getName(String firstName, String lastName) { return firstName + " " + middleName + " " + lastName; } }

Oleh kerana kaedah getName kami adalah kaedah instance dan bukan kaedah statik , untuk memanggil kaedah getName , kami perlu membuat instance kelas PersonName :

PersonName personName = new PersonName(); String fullName = personName.getName("Alan", "Turing");

Seperti yang kita lihat, kita menggunakan objek yang dibuat untuk memanggil kaedah getName .

Finally, let's take a look at how to call a static method. In the case of a static method, we don't need a class instance to make the call. Instead, we invoke the method with its name prefixed by the class name.

Let's demonstrate using a variant of the previous example:

public class PersonName { public static String getName(String firstName, String lastName) { return firstName + " " + middleName + " " + lastName; } }

In this case, the method call is:

String fullName = PersonName.getName("Alan", "Turing");

5. Method Overloading

Java allows us to have two or more methods with the same identifier but different parameter list — different method signatures. In this case, we say that the method is overloaded. Let's go with an example:

public String getName(String firstName, String lastName) { return getName(firstName, "", lastName); } public String getName(String firstName, String middleName, String lastName) { if (!middleName.isEqualsTo("")) { return firstName + " " + lastName; } return firstName + " " + middleName + " " + lastName; }

Method overloading is useful for cases like the one in the example, where we can have a method implementing a simplified version of the same functionality.

Akhirnya, kebiasaan reka bentuk yang baik adalah memastikan bahawa kaedah yang terlalu banyak berperilaku dengan cara yang serupa. Jika tidak, kod akan membingungkan jika kaedah dengan pengecam yang sama berkelakuan dengan cara yang berbeza.

6. Kesimpulannya

Dalam tutorial ini, kami telah meneroka bahagian sintaks Java yang terlibat ketika menentukan kaedah di Java.

Secara khusus, kami melalui pengubah akses, jenis pengembalian, pengenal kaedah, senarai parameter, senarai pengecualian, dan isi metode. Kemudian kami melihat definisi kaedah tandatangan, cara memanggil kaedah, dan bagaimana cara membebankan kaedah.

Seperti biasa, kod yang terdapat di sini boleh didapati di GitHub.