JavaRush /Java Blog /Random-ID /Metode di Jawa
articles
Level 15

Metode di Jawa

Dipublikasikan di grup Random-ID
Metode di Java - 1Di Java, aplikasi terdiri dari kelas-kelas. Kelas, pada gilirannya, terdiri dari variabel. Mereka bertanggung jawab untuk menyimpan data dan metode yang bertanggung jawab atas perilaku kelas: dengan kata lain, logika yang dapat diberikannya (misalnya, memproses beberapa data, memanggil metode lain, dll.). Kita dapat membicarakan komponen-komponen seperti variabel sejak lama, namun bukan itu alasan kita berkumpul hari ini. Mari kita bicara lebih baik tentang komponen kelas seperti metode. Metode di Java - 2Metode adalah blok kode bernama yang dideklarasikan dalam suatu kelas. Ini berisi serangkaian tindakan (instruksi) lengkap tertentu yang ditujukan untuk memecahkan masalah tertentu, yang dapat digunakan kembali. Dengan kata lain, metode adalah sebuah fungsi: sesuatu yang dapat dilakukan oleh kelas Anda. Bahasa lain juga memiliki fungsi. Hanya di Java mereka menjadi anggota kelas dan, menurut terminologi OOP, disebut metode. Namun sebelum kita melanjutkan, mari kita lihat contoh kecilnya:
public String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
  return resultSentence;
}
Tidak ada yang rumit di sini: metode Java yang tugasnya adalah menghasilkan string ucapan dengan nama yang kita berikan padanya. Seperti misalnya - Hello world! My name is Bobby Mari kita pahami konstruksi suatu metode dengan baik dengan melihat setiap kata kunci dalam deklarasi metode (dari kiri ke kanan). Kata kunci pertama kami adalah public, dan ini menunjukkan pengubah akses:

Pengubah akses

Mereka menunjukkan cakupan visibilitas yang diperbolehkan bagi anggota kelas, yaitu pembatasan tempat di mana suatu variabel atau metode diperbolehkan untuk digunakan. Metode di Java - 3Pengubah akses berikut digunakan di Java:
  • publik : publik. Metode atau bidang dengan pengubah ini bersifat publik, dapat dilihat oleh kelas lain (atau lebih tepatnya, metode dan bidangnya) dari paket saat ini dan dari paket eksternal. Ini adalah tingkat akses terluas yang diketahui;

  • protected : metode atau variabel dengan pengubah ini dapat diakses dari mana saja di kelas atau paket saat ini, atau di kelas yang mewarisi yang satu ini, serta metode atau bidang, meskipun berada di paket lain

    protected String constructHelloSentence(String name) {...}
  • Pengubah bawaan. Jika bidang atau metode kelas tidak memiliki pengubah, pengubah default akan diterapkan. Dalam hal ini, bidang atau metode terlihat oleh semua kelas dalam paket saat ini (seperti protected , tetapi tanpa visibilitas saat mewarisi).

    String constructHelloSentence(String name) {...}
  • private : kebalikan dari pengubah publik . Metode atau variabel dengan pengubah seperti itu hanya tersedia di kelas yang mendeklarasikannya.

    private String constructHelloSentence(String name) {...}
Selanjutnya kita memiliki Stringtanda tangan metode (baris pertama dari metode yang menjelaskan propertinya).

Nilai kembalian

Nilai yang dikembalikan adalah data (sebagian hasil eksekusi metode) yang menggantikannya setelah panggilan. Setiap metode memiliki nilai kembalian. Atau tidak?

Metode Nilai Pengembalian

Nilai ini dapat berupa tipe data apa pun: variabel bertipe sederhana atau tipe referensi. Dalam contoh ini, kami menunjukkan bahwa metode harus mengembalikan objek bertipe String, yang, seperti yang kita ingat, adalah kelas yang mendeskripsikan string. Poin kedua di sini adalah kata return. Ini memiliki hubungan langsung dengan nilai kembalian: nilai setelahnya akan dikirim kembali ke tempat di mana metode dipanggil, dan metode itu sendiri kemudian akan returnditutup. Kata ini biasanya muncul di baris terakhir metode (kecuali metode dengan berbagai cabang seperti if, else...). Jika Anda menulis kode pada baris berikutnya setelah return:
private String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  return resultSentence;
  System.out.println(resultSentence);
}
maka kita akan mendapat kutukan dari kompiler, yang tidak terlalu bagus (kompiler tidak akan merekomendasikan omong kosong). Perlu Anda ingat juga bahwa tipe data setelahnya сharus sesuai dengan yang dideklarasikan pada tanda tangan metode. returnBaca lebih lanjut tentang di sini .

ruang kosong

Apa kegunaannya voiddi Jawa? Tidak semua metode memiliki nilai kembalian. Ada yang tidak punya apa-apa atau tidak perlu mengembalikan apa pun. Lalu apa yang harus dilakukan? Kemudian di tanda tangan metode kita menulis void. Seperti apa metode kita tanpa nilai kembalian?
protected void constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
}
Anda mungkin memperhatikan bahwa bersama dengan nilai yang dikembalikan, kata returnJadi apa adanya telah hilang, karena metode kami tidak akan mengembalikan apa pun. Namun, dapat ditempatkan di sini, tetapi tanpa arti apa pun, hanya return; di baris terakhir. Ini umumnya tidak berguna, jadi voidini opsional dalam metode dengan. Namun, ini dapat digunakan dengan berguna dalam voidmetode, seperti cabang atau loop, di mana Anda ingin segera keluar dari metode tersebut. Berikutnya dalam deklarasi metode yang kita miliki constructHelloSentence.

Nama metode

constructHelloSentence - nama metode, ciri khas yang dengannya kita dapat membedakan metode tertentu. Dan, karenanya, panggil metode tertentu. Metode di Java - 4Nama metode harus dimulai dengan huruf kecil, tetapi juga menggunakan huruf unta (CamelCase, huruf unta): mis. Setiap kata berikutnya dalam nama berdekatan dengan kata sebelumnya dan ditulis dengan huruf kapital. Nama metode harus menjelaskan metode tersebut (komentar terbaik adalah penamaan yang tepat). Untuk melakukan ini, gunakan kata kerja atau kombinasi dengan kata kerja: getCat, delete, createCar, dan seterusnya. Dalam satu kelas, nama metode harus unik (tidak termasuk metode yang berlebihan, yang akan kita bahas nanti). Mari kita lihat lebih jauh metode yang kita analisis dan lihat ( String name)

Parameter metode

Metode mungkin (atau mungkin tidak) memiliki data tertentu yang berasal dari luar, yaitu dari tempat di mana metode itu dipanggil. Dalam kasus kami, kami melihat bahwa objek tipe Stringdengan nama datang namedan di masa depan kami menggunakan variabel ini dalam metode kami. Anda dapat menggunakan parameter dalam jumlah tidak terbatas dalam suatu metode, tetapi lebih dari 7 tidak disarankan. Ketika kita tidak mengetahui jumlah pasti elemen, tetapi semua elemen tersebut diperlukan untuk tujuan yang sama dan memiliki tipe yang sama (misalnya, String), elipsis digunakan:
public void constructHelloSentence(String...name) {
 ...
}
Daya tarik setiap elemen akan seperti ini: name[0] Apakah ini mengingatkan Anda pada sesuatu? Benar, susunan! Tidak ada yang akan berubah jika kita menulis:
protected void constructHelloSentence(String[] name) {
 ...
}
Akses ke elemen juga akan berbentuk: name[1] Dan satu hal lagi. Argumen metode dapat bersifat final :
public String constructHelloSentence(final String name) {
  ...
}
Artinya referensi nama terikat pada objek tertentu Stringdan tidak dapat ditimpa. finalAnda dapat membaca tentang bekerja dengan variabel referensi dan interaksinya dengan kata-kata khusus di materi “ Tipe Data Referensi di Java ”.

Metode Panggilan

Jadi, kita telah memilah pembuatan metode, sekarang mari kita bicara tentang penggunaannya. Bagaimana cara memanggil metode di Java? Metode di Java - 5Setiap metode di Java ada di dalam kelas. Untuk memahami cara kerja metode pemanggilan di Java, mari kita ambil kelas:
public class StringConstructor {
  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Karena metode kita tidak statis (ini adalah topik terpisah untuk diskusi yang melampaui cakupan artikel hari ini), untuk memanggilnya Anda harus terlebih dahulu membuat sebuah objek dan kemudian memanggil metode di dalamnya:
class Application{
  public static void main(String[] args) {
     StringConstructor stringConstructor = new StringConstructor();
     stringConstructor.constructHelloSentence("Den");
  }
}
Dalam argumen metode kami, kami meneruskan string (nama) yang ingin kami lihat dalam string hasil yang ditampilkan di layar:

Hello world! My name is Den
Perlu juga diingat bahwa metode dapat digunakan kembali sebanyak yang kita perlukan - tidak ada batasan.

ini

Anda sering dapat melihat kata kunci dalam code this, seperti pada setter:
public void setValue(Long value) {
   this.value = value;
}
Dan apa artinya? thisdi Java, ini adalah referensi ke objek kelas ini saat ini. Misalnya, jika kita membuat sebuah objek:
StringConstructor stringConstructor = new StringConstructor();
lalu thisdi dalam objek tersebut stringConstructorakan ada link ke objek yang sama. thisdigunakan untuk merujuk ke variabel objek (seperti pada setter di atas) dan untuk memanggil beberapa metode. Kita dapat menulis ulang kelas kita sedikit:
public class StringConstructor {

  public String constructHelloSentence(String name) {
     String resultSentence = this.getSentence()  + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  private String getSentence() {
     return "Hello world! My name is ";
  }
}
Melalui thiskami memanggil metode objek ini untuk mengambil string yang diperlukan. Tapi tetap saja, sebagai aturan, ini hampir tidak digunakan untuk metode, karena bahkan tanpa itu ada referensi ke metode objek tertentu; ini terutama digunakan untuk variabel objek.

Metode Kelebihan Beban

Katakanlah kita memerlukan metode yang pada dasarnya menjalankan logika yang sama, tetapi dalam format Hello world! sebaliknya worldkita ingin memasukkan kata (string) kita sendiri. Tapi kami sudah punya metodenya constructHelloSentence. Jadi, apakah kita perlu membuat nama baru untuk metode yang pada dasarnya menjalankan fungsi yang sama? Bagaimanapun keadaannya: pada saat ini kelebihan metode membantu kita. Metode di Java - 7Method Overloading adalah penggunaan nama metode yang sama lebih dari satu kali ketika mendeklarasikannya dalam suatu kelas. Dari sudut pandang sintaksis bahasa, tidak mungkin ada dua nama yang identik di ruang lokal mana pun. Namun dimungkinkan juga untuk mendeklarasikan metode dengan nama yang sama tetapi argumennya berbeda. Dengan kata lain, suatu kelas mengandung kelebihan beban ketika ada dua atau lebih metode dengan nama yang sama tetapi data masukannya berbeda:
public class Constructor {

  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  protected String constructHelloSentence(String firstName, String secondName) {
     String resultSentence = "Hello " + firstName + "! My name is " + secondName;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Di sini kita melihat bahwa metode tidak harus berisi pengubah akses yang sama (serta tipe pengembalian). Jika metode kelebihan beban dipanggil, maka dari beberapa metode yang dideklarasikan, kompiler secara otomatis menentukan metode yang diperlukan berdasarkan parameter yang ditentukan selama panggilan.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION