public String constructHelloSentence(String name) {
String resultSentence = "Hello world! My name is " + name;
System.out.println(resultSentence);
return resultSentence;
}
Ora ana sing rumit ing kene: metode Jawa sing tugase nggawe senar salam kanthi jeneng sing diwenehake. Kaya contone - Hello world! My name is Bobby
Ayo ngerteni konstruksi metode kanthi bener kanthi ndeleng saben tembung kunci ing deklarasi metode (saka kiwa menyang tengen). Tembung kunci pisanan kita yaiku public
, lan nuduhake modifier akses:
Akses modifiers
Dheweke nuduhake ruang lingkup visibilitas sing diidini kanggo anggota kelas, yaiku, watesan ing papan ing ngendi variabel utawa metode diijini digunakake. Modifiers akses ing ngisor iki digunakake ing Jawa:-
umum : umum. Metode utawa kolom karo modifier iki umum, katon kanggo kelas liyane (utawa luwih, cara lan lapangan) saka paket saiki lan saka paket external. Iki minangka tingkat akses paling jembar sing dikenal;
-
dilindhungi : cara utawa variabel kanthi modifier iki bisa diakses saka ngendi wae ing kelas utawa paket saiki, utawa ing kelas sing duwe warisan iki, uga metode utawa kolom, sanajan ana ing paket liyane.
protected String constructHelloSentence(String name) {...}
-
Default modifier. Yen kolom utawa metode kelas ora duwe modifier, modifier standar ditrapake. Ing kasus iki, kolom utawa cara katon kanggo kabeh kelas ing paket saiki (kaya protected , nanging tanpa visibilitas nalika marisi).
String constructHelloSentence(String name) {...}
-
pribadi : kebalikan saka modifier umum . Cara utawa variabel kanthi modifier kaya ngono mung kasedhiya ing kelas sing diumumake.
private String constructHelloSentence(String name) {...}
String
ing tandha cara (baris pisanan saka cara njlèntrèhaké sawijining sifat).
Nilai bali
Nilai bali yaiku data (sawetara asil saka eksekusi metode) sing ana ing panggonane sawise telpon. Saben metode nduweni nilai bali. Utawa ora?Metode Nilai Wangsulan
Nilai iki bisa dadi jinis data apa wae: variabel saka jinis prasaja utawa jinis referensi. Ing conto iki, kita nunjukake yen cara kasebut kudu ngasilake obyek saka jinisString
, sing, kaya sing kita eling, minangka kelas sing nggambarake senar. Titik kapindho ing kene yaiku tembung return
. Nduwe hubungan langsung karo nilai bali: nilai sawise bakal dikirim maneh menyang panggonan sing diarani metode kasebut, lan metode kasebut bakal return
ditutup. Tembung iki biasane katon ing baris pungkasan saka metode (kajaba cara karo macem-macem cabang kaya if, else..
.). Yen sampeyan nulis kode ing baris sabanjure sawise return
:
private String constructHelloSentence(String name) {
String resultSentence = "Hello world! My name is " + name;
return resultSentence;
System.out.println(resultSentence);
}
banjur kita bakal entuk kutukan saka kompiler, sing ora apik banget (kompiler ora bakal menehi rekomendasi omong kosong). Sampeyan uga kudu elinga yen jinis data sawise с
kudu cocog karo sing diumumake ing tandha cara. return
Waca liyane babagan kene .
kekosongan
Apa gunanevoid
ing basa Jawa? Ora kabeh cara duwe nilai bali. Sawetara ora duwe apa-apa utawa ora perlu mbalekake apa-apa. Apa sing kudu ditindakake? Banjur ing tandha cara kita nulis void
. Apa cara kita katon tanpa nilai bali?
protected void constructHelloSentence(String name) {
String resultSentence = "Hello world! My name is " + name;
System.out.println(resultSentence);
}
Sampeyan mbokmenawa ngeweruhi sing bebarengan karo nilai bali, tembung return
Dadi wis ilang, amarga cara kita ngirim ora bali apa-apa. Nanging, bisa diselehake ing kene, nanging tanpa makna, mung return
; ing baris pungkasan. Iki umume ora ana gunane, dadi void
opsional ing metode karo. Nanging, bisa digunakake kanthi migunani ing void
cara, kayata cabang utawa puteran, ing ngendi sampeyan pengin langsung metu saka metode kasebut. Sabanjure ing deklarasi metode kita duwe constructHelloSentence
.
Jeneng metode
constructHelloSentence
- jeneng metode, fitur khas sing bisa mbedakake siji utawa cara liyane. Lan, miturut, nelpon siji utawa cara liyane. Jeneng metode kudu diwiwiti kanthi huruf cilik, nanging uga nggunakake kasus unta (CamelCase, kasus unta): i.e. Saben tembung sabanjure ing jeneng kasebut jejer karo sing sadurunge lan ditulis nganggo huruf kapital. Jeneng metode kudu njlèntrèhaké cara (komentar sing paling apik yaiku jeneng sing tepat). Kanggo nindakake iki, gunakake kriya utawa kombinasi karo kriya: getCat
, delete
, createCar
, lan liya-liyane. Ing siji kelas, jeneng metode kudu unik (ora ngetung metode overloading, sing bakal dirembug mengko). Ayo dideleng luwih lanjut babagan metode sing dianalisis lan deleng ( String name
)
Parameter metode
Metode bisa uga (utawa ora) duwe data tartamtu sing bakal teka saka njaba, yaiku saka papan sing diarani metode kasebut. Ing kasus kita, kita weruh yen obyek jinisString
kanthi jeneng teka name
lan ing mangsa ngarep kita nggunakake variabel iki ing metode kita. Sampeyan bisa nggunakake nomer Unlimited paramèter ing cara, nanging luwih saka 7 ora dianjurake. Nalika kita ora ngerti jumlah unsur sing tepat, nanging kabeh unsur kasebut dibutuhake kanggo tujuan sing padha lan bakal dadi jinis sing padha (contone, String
), elipsis digunakake:
public void constructHelloSentence(String...name) {
...
}
Daya tarik kanggo saben unsur bakal kaya mangkene: name[0]
Apa sampeyan ngelingake apa wae? Bener, array! Ora ana sing bakal owah yen kita nulis:
protected void constructHelloSentence(String[] name) {
...
}
Akses menyang unsur uga bakal dadi: name[1]
Lan siji liyane. Argumen metode bisa dadi final :
public String constructHelloSentence(final String name) {
...
}
Iki tegese referensi jeneng kaiket menyang obyek tartamtu String
lan ora bisa diganti. final
Sampeyan bisa maca babagan nggarap variabel referensi lan interaksi karo tembung sing dilindhungi ing materi " Jinis Data Referensi ing Jawa ".
Metode Telpon
Dadi, kita wis ngurutake nggawe metode, saiki ayo ngomong babagan nggunakake. Kepiye cara nelpon metode ing Jawa? Saben metode ing Jawa ana ing kelas. Kanggo mangerteni carane cara nelpon ing Jawa, ayo njupuk kelas:public class StringConstructor {
public String constructHelloSentence(String name) {
String resultSentence = "Hello world! My name is " + name;
System.out.println(resultSentence);
return resultSentence;
}
}
Amarga cara kita ora statis (iki minangka topik sing kapisah kanggo diskusi sing ngluwihi ruang lingkup artikel saiki), kanggo nyebataken, sampeyan kudu nggawe obyek dhisik banjur nelpon metode kasebut:
class Application{
public static void main(String[] args) {
StringConstructor stringConstructor = new StringConstructor();
stringConstructor.constructHelloSentence("Den");
}
}
Ing argumen metode kita, kita ngliwati senar (jeneng) sing pengin dideleng ing senar sing ditampilake ing layar:
Hello world! My name is Den
Sampeyan uga kudu eling yen cara bisa digunakake maneh kaping pirang-pirang - ora ana watesan.
iki
Sampeyan bisa kerep ndeleng tembung kunci ing kodethis
, kaya ing setter:
public void setValue(Long value) {
this.value = value;
}
Lan apa tegese? this
ing Jawa, iki referensi kanggo obyek saiki kelas iki. Contone, yen kita nggawe obyek:
StringConstructor stringConstructor = new StringConstructor();
banjur this
ing njero obyek stringConstructor
bakal ana link menyang obyek sing padha. this
digunakake kanggo nyebut variabel obyek (kaya ing setter ing ndhuwur) lan kanggo nelpon sawetara cara. Kita bisa nulis ulang kelas kita sethithik:
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 ";
}
}
Liwat this
kita nelpon cara obyek iki kanggo njupuk senar dibutuhake. Nanging, minangka aturan, cara iki meh ora digunakake, amarga sanajan tanpa ana referensi kanggo metode obyek tartamtu, utamane digunakake kanggo variabel obyek.
Metode overloading
Ayo kita ngomong yen kita butuh metode sing nindakake logika sing padha, nanging ingHello world
! tinimbang world
kita arep nglebokake tembung dhewe (senar). Nanging kita wis duwe cara constructHelloSentence
. Dadi, apa kita kudu nggawe jeneng anyar kanggo metode sing sejatine nindakake fungsi sing padha? Ora ketompo carane: ing wayahe cara overloading teka kanggo bantuan kita. Overloading metode yaiku nggunakake jeneng metode sing padha luwih saka sepisan nalika ngumumake ing kelas. Saka sudut pandang sintaksis basa, ora bisa ana rong jeneng sing padha ing sawetara papan lokal. Nanging uga bisa kanggo ngumumake metode kanthi jeneng sing padha nanging beda argumen. Ing tembung liya, kelas ngemot kakehan nalika ana rong cara utawa luwih kanthi jeneng sing padha nanging data input sing beda:
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;
}
}
Ing kene kita bisa ndeleng manawa metode ora kudu ngemot modifier akses sing padha (uga jinis bali). Yen metode overloaded diarani, banjur saka sawetara cara sing diumumake, compiler kanthi otomatis nemtokake sing dibutuhake adhedhasar paramèter sing ditemtokake nalika nelpon.
GO TO FULL VERSION