"Hai, Amigo! Topik pelajaran dina iki yaiku nggedhekake lan nyepetake konversi jinis. Sampeyan sinau babagan widening lan narrowing jinis primitif biyen. Ing Level 10. Dina iki kita bakal ngomong babagan cara kerjane kanggo jinis referensi, yaiku. conto kelas."
Ing kasunyatan, kabeh iku cukup prasaja. Mbayangno chain pusaka kelas kang: kelas, tiyang sepah, tiyang sepah tiyang sepah, etc., kabeh cara bali menyang kelas Obyek. Amarga kelas ngemot kabeh metode anggota kelas sing diwarisake , conto kelas kasebut bisa disimpen ing variabel sing jinise saka wong tuwane.
Iki contone:
Kode | Katrangan |
---|---|
|
Ing kene kita duwe telung deklarasi kelas: Kewan, Kucing, lan Macan. Kucing marisi Kewan. Lan Macan marisi Kucing. |
|
Obyek Macan tansah bisa ditugasake menyang variabel sing jinise minangka salah sawijining leluhur. Kanggo kelas Macan, iki yaiku Kucing, Kewan, lan Obyek. |
Saiki ayo goleki konversi sing nggedhekake lan nyuda.
Yen operasi assignment nyebabake kita munggah ing chain warisan (menyang kelas Obyek), banjur kita dealing karo konversi widening (uga dikenal minangka upcasting). Yen kita pindhah mudhun chain menyang jinis obyek, banjur iku konversi narrowing (uga dikenal minangka downcasting).
Ngalih munggah ranté pusaka diarani widening, amarga ndadékaké kanggo jinis luwih umum. Nanging, kanthi mangkono, kita bakal kelangan kemampuan kanggo nggunakake metode sing ditambahake menyang kelas liwat warisan.
Kode | Katrangan |
---|---|
|
Nalika narrowing jinis, sampeyan kudu nggunakake operator konversi jinis, IE kita nindakake konversi eksplisit.
Iki nyebabake mesin Java mriksa apa obyek kasebut pancen duwe jinis sing pengin diowahi. Inovasi cilik iki ngasilake pengurangan akeh jinis kesalahan casting, lan nambah stabilitas program Java. |
Kode | Katrangan |
---|---|
|
Luwih apik, gunakake instanceof check |
|
Lan kene sebabe. Deleng conto ing sisih kiwa.
Kita (kode) ora mesthi ngerti apa jinis obyek sing digunakake. Bisa uga obyek saka jinis sing padha karo variabel (Kewan), utawa jinis turunan (Kucing, Macan). Coba metode doAllAction. Kerjane kanthi bener, preduli saka jinis obyek sing dilewati. Ing tembung liya, bisa digunakake kanthi bener kanggo kabeh telung jinis: Kewan, Kucing, lan Macan. |
|
Kene kita duwe telung operasi assignment. Kabeh mau minangka conto konversi widening.
Operator jinis cast ora dibutuhake ing kene, amarga ora perlu mriksa. Referensi obyek mesthi bisa disimpen ing variabel sing jinise minangka salah sawijining leluhur. |
"Oh, conto kaping pindho nganti pungkasan nggawe kabeh jelas: kenapa mriksa dibutuhake, lan kenapa jinis casting dibutuhake."
"Muga-muga. Aku pengin narik perhatian sampeyan menyang kasunyatan iki:"
Ora ana sing nyebabake obyek bisa diganti kanthi cara apa wae! Siji-sijine sing diganti yaiku jumlah metode sing kasedhiya kanggo diarani variabel referensi tartamtu.
Contone, variabel Cat ngidini sampeyan nelpon metode doAnimalActions lan doCatActions. Iku ora ngerti apa-apa bab cara doTigerActions, malah yen nuduhake obyek Tiger.
"Ya, aku ngerti. Iku luwih gampang tinimbang sing dakkira."
GO TO FULL VERSION