1. Pusaka
Kanggo nggarap mesin game CodeGym, sampeyan kudu nggunakake warisan . Nanging apa yen sampeyan ora ngerti apa iku? Ing tangan siji, sampeyan kudu ngerti lan sinau topik iki. Ing tangan liyane, mesin dirancang khusus kanggo dadi banget prasaja, supaya sampeyan bisa njaluk dening kawruh entheng saka warisan.
Dadi apa warisan? Ing istilah sing prasaja, warisan minangka hubungan antarane rong kelas. Salah sijine dadi kelas wong tuwa, lan liyane dadi kelas anak (turunan). Apa maneh, kelas wong tuwa bisa uga ora ngerti yen dheweke duwe kelas turunan. Ing tembung liya, wong tuwa ora entuk akeh keuntungan saka duwe kelas turunan.
Nanging warisan menehi akeh kaluwihan kanggo kelas anak. Sing paling penting yaiku kabeh variabel lan metode kelas induk katon ing kelas anak, kaya kode kelas induk disalin langsung menyang kelas anak. Iki ora sakabehe akurat, nanging bakal cukup kanggo pangerten dhasar saka warisan.
Ing ngisor iki sawetara conto kanggo mbantu sampeyan luwih ngerti babagan warisan.
Conto 1 — iki conto sing paling gampang
|
Kelas kasebut Child menehi warisan Parent kelas kanthi bantuan tembung extends kunci. |
|
Conto 2 - nggunakake variabel kelas induk
|
Kelas kasebut Child bisa nggunakake age lan name lapangan kelas Parent kaya-kaya diumumake ing Child kelas kasebut. |
|
Conto 3 - nggunakake metode kelas induk
|
Kelas kasebut Child bisa nggunakake variabel lan metode kelas Induk kaya-kaya diumumake ing Child kelas kasebut. Ing conto iki, kita nggunakake getName() cara. |
|
Ngilangi sawetara rincian, kita bisa ngomong yen saka perspektif kompiler Jawa, kita mung nyalin kode kelas induk menyang kode kelas anak:
public class Child extends Parent
{
public int age; // An inherited variable
public String name; // An inherited variable
public getName() { // An inherited method
return name;
}
public void printInfo()
{
System.out.println(getName() + " " + age);
}
}
2. Metode overriding
Kadhangkala ana kahanan sing nggawe kelas kita Child
entuk warisan kelas sing migunani banget Parent
, nyebabake bocah kasebut entuk kabeh variabel lan metode wong tuwa. Nanging sawetara cara kasebut bisa uga ora bisa digunakake kanthi cara sing dikarepake utawa ora kaya sing dikarepake.
Apa sing sampeyan tindakake ing kasus iki? Kita bisa ngganti cara sing implementasine ora disenengi . Iki minangka prasaja: ing Child
kelas kita mung ngumumake metode kanthi teken sing padha karo metode ing Parent
kelas banjur nulis kode dhewe ing kono.
Conto 1 - cara overriding
|
Cara kasebut printInfo() bakal nampilake frasa ing ngisor iki:
|
|
Oversimplifying kahanan Luwih, warisan nyebabake kode saka kelas induk disalin menyang kelas anak. Nanging yen kelas turunan wis dadi metode sing ana ing kelas leluhur, mula metode kasebut ora ditiru saka kelas leluhur. Ing kene kita ngomong yen metode ing kelas anak ngindhari metode ing kelas induk. Deleng conto ing ngisor iki. Muga-muga bisa mbantu nggawe luwih jelas:
Mangkene carane kelas Anak katon saka sudut pandang kompiler: |
---|
|
Conto 2 - sihir warisan cilik (lan metode overriding)
public class Parent
{
public getName() {
return "Luke";
}
public void printInfo()
{
System.out.println( getName() );
}
}
public class Child extends Parent
{
public getName() {
return "Luke, I am your father";
}
}
Yen printInfo()
metode kasebut diarani Parent
jinis, banjur diarani getName()
metode kelas Parent
.
Yen printInfo()
metode kasebut diarani Child
obyek, banjur diarani getName()
metode kelas Child
.
Ing tembung liya, printInfo()
metode kasebut diumumake mung ing Parent
kelas, nanging diarani getName()
metode kelas Child
yen printInfo()
metode kasebut diarani obyek Child
.
Tuladha:
|
Kode iki nampilake teks ing ngisor iki ing layar:
|
|
Kode iki nampilake teks ing ngisor iki ing layar:
|
Lan kabeh amarga saka sudut pandang compiler (versi sing gampang banget), kode kelas Child
katon kaya iki:
public class Child extends Parent
{
public getName() {
return "Luke, I am your father";
}
public void printInfo()
{
System.out.println(getName());
}
}
3. Dhaptar
Punika pangeling singkat babagan dhaptar ( List
). Dhaptar duwe akeh sing padha karo array:
- Dheweke bisa nyimpen akeh data saka jinis tartamtu.
- Dheweke ngidini sampeyan entuk unsur kanthi indeks.
- Indeks saka unsur miwiti ing
0
.
Kaluwihan saka dhaptar:
Ora kaya array, dhaptar bisa ngganti ukuran kanthi dinamis. Sanalika sawise nggawe, ukuran dhaptar yaiku 0
. Nalika item ditambahake menyang dhaptar, ukurane mundhak. Conto nggawe dhaptar:
ArrayList<String> myList = new ArrayList<String>();
Nilai sing dituduhake ing kurung sudut yaiku jinis data sing bisa disimpen ing dhaptar.
Ing ngisor iki sawetara cara kanggo nggarap dhaptar:
Kode | Katrangan ringkes |
---|---|
|
Nggawe dhaptar strings anyar |
|
Tambah unsur ing mburi dhaftar |
|
Tambah unsur ing wiwitan dhaptar |
|
Entuk unsur kanthi indeks |
|
Ngganti unsur kanthi indeks |
|
Entuk nomer unsur ing dhaptar |
|
Mbusak unsur saka dhaptar |
Kanggo informasi luwih lengkap babagan dhaptar, sampeyan bisa maca artikel ing ngisor iki:
4. Nomer acak
Mesin game CodeGym duwe rong cara sing bisa digunakake kanggo ngasilake nomer acak. Cara kasebut yaiku:
int getRandomNumber(int max)
int getRandomNumber(int min, int max)
Cara pisanan — getRandomNumber(int max)
— ngasilake nomer acak ing sawetara 0
, 1
, 2
, ... max-1
. Ing hood, nggunakake Random
kelas saka java.util
paket, nanging ora ngganti carane sampeyan nggunakake nomer acak.
getRandomNumber(int)
nampa integer minangka argumen. Nomer iki bakal dadi wates ndhuwur ing nomer sing generator nomer acak bisa bali. Watesan ngisor yaiku 0. Manungsa waé! Generator nomer acak ora bakal ngasilake nilai wates ndhuwur. Contone, yen sampeyan nelpon getRandomNumber(3)
, bakal acak bali salah siji 0, 1, utawa 2. Nalika sampeyan bisa ndeleng, iku ora bakal bali 3. Nggunakake generator nomer acak ing cara iki cukup prasaja, nanging cocok kanggo akeh kasus.
Cara kapindho — getRandomNumber(int min, int max)
— ngasilake integer acak ing sawetara [min, max-1]
. Iku ora bakal bali nomer kurang saka min
, lan ora bakal bali nomer luwih saka max-1
.
Kepiye cara kasebut bisa digunakake ing praktik?
1. Dadu
Upaminipun sampeyan pengin simulasi muter saka die lan njaluk nomer acak ing sawetara 1-6
. Kepiye carane sampeyan nindakake? Iki bisa ditindakake kanthi kode kaya iki:
int dice = getRandomNumber(1, 7);
Cara iki bakal ngasilake integer acak ing kisaran 1-6
.
2. Sasaran laku
Upaminipun sampeyan pengin simulasi njupuk ing Doel, lan akurasi dijupuk kalebu komponen acak sing beda-beda ing sawetara saka -10
kanggo +10
klebu. Iki bisa ditindakake kanthi kode kaya iki:
int dx = getRandomNumber(-10, 11);
Cara iki bakal ngasilake integer acak ing kisaran -10
menyang +10
.
Ana akeh cara kanggo nggunakake nomer acak ing game. Sampeyan mung diwatesi dening imajinasi sampeyan. Tulis game sampeyan dhewe, nyaring, lan nikmati proses kasebut.
Saben uwong bisa main game, nanging mung programer sing bisa nggawe.
GO TO FULL VERSION