JavaRush /Blog Jawa /Random-JV /Metode ing Jawa
articles
tingkat

Metode ing Jawa

Diterbitake ing grup
Metode ing Jawa - 1Ing Jawa, aplikasi kalebu kelas. Kelas, ing siji, kalebu variabel. Padha tanggung jawab kanggo nyimpen data lan cara sing tanggung jawab kanggo prilaku kelas: ing tembung liyane, logika sing bisa nyedhiyani (contone, Processing sawetara data, nelpon cara liyane, etc.). Kita bisa ngomong babagan komponen kasebut minangka variabel kanggo wektu sing suwe, nanging dudu sebabe kita wis kumpul saiki. Ayo luwih apik ngomong babagan komponen kelas kasebut minangka metode. Metode ing Jawa - 2Metode minangka blok kode sing diumumake ing kelas. Isine urutan tumindak (instruksi) lengkap tartamtu kanggo ngrampungake masalah sing kapisah, sing bisa digunakake maneh. Ing tembung liya, metode minangka fungsi: soko sing bisa ditindakake kelas sampeyan. Basa liya uga nduweni fungsi. Mung ing Jawa, dheweke dadi anggota kelas lan, miturut terminologi OOP, diarani metode. Nanging sadurunge nerusake, ayo goleki conto cilik:
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. Metode ing Jawa - 3Modifiers 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) {...}
Sabanjure kita kudu Stringing 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 jinis String, 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 returnditutup. 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. returnWaca liyane babagan kene .

kekosongan

Apa gunane voiding 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 returnDadi 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 voidopsional ing metode karo. Nanging, bisa digunakake kanthi migunani ing voidcara, 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. Metode ing Jawa - 4Jeneng 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 jinis Stringkanthi jeneng teka namelan 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 Stringlan ora bisa diganti. finalSampeyan 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? Metode ing Jawa - 5Saben 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 kode this, kaya ing setter:
public void setValue(Long value) {
   this.value = value;
}
Lan apa tegese? thising Jawa, iki referensi kanggo obyek saiki kelas iki. Contone, yen kita nggawe obyek:
StringConstructor stringConstructor = new StringConstructor();
banjur thising njero obyek stringConstructorbakal ana link menyang obyek sing padha. thisdigunakake 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 thiskita 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 ing Hello world! tinimbang worldkita 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. Metode ing Jawa - 7Overloading 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.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION