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. Pengubah 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) {...}
String
tanda 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 bertipeString
, 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 return
ditutup. 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. return
Baca lebih lanjut tentang di sini .
ruang kosong
Apa kegunaannyavoid
di 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 return
Jadi 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 void
ini opsional dalam metode dengan. Namun, ini dapat digunakan dengan berguna dalam void
metode, 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. Nama 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 tipeString
dengan nama datang name
dan 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 String
dan tidak dapat ditimpa. final
Anda 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? Setiap 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 codethis
, seperti pada setter:
public void setValue(Long value) {
this.value = value;
}
Dan apa artinya? this
di Java, ini adalah referensi ke objek kelas ini saat ini. Misalnya, jika kita membuat sebuah objek:
StringConstructor stringConstructor = new StringConstructor();
lalu this
di dalam objek tersebut stringConstructor
akan ada link ke objek yang sama. this
digunakan 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 this
kami 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 formatHello world
! sebaliknya world
kita 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. Method 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.
GO TO FULL VERSION