JavaRush /Blog Jawa /Random-JV /Tembung kunci iki {ing conto}

Tembung kunci iki {ing conto}

Diterbitake ing grup
Ing JavaRush, para siswa diwenehi tembung kunci kanthi harfiah saka kuliah pisanan this. Lan liwat wektu dadi cetha apa tegese. Nanging akeh, looking bali, mbokmenawa bakal sajujure ngomong dhewe sing kanggo dangu padha ora bisa éling zen saka tembung kunci iki. Ing artikel iki, kita ngangkat tutup rahasia babagan nggunakake tembung kunci thiskanggo wong-wong sing isih durung ngerti ... Sugeng rawuh! Yen sampeyan njupuk buku referensi Jawa Schildt , ing kaca 171 sampeyan bakal maca tembung kunci sing thisdibutuhake supaya metode bisa ngrujuk obyek sing diarani. Iki bisa dadi pungkasane. Nanging kita butuh spesifik. Tembung kunci iki {ing conto} - 1Minangka aturan, thiskudu digunakake ing rong kasus:
  1. Nalika variabel conto kelas lan variabel metode / konstruktor duwe jeneng sing padha;
  2. Nalika sampeyan kudu nelpon konstruktor saka siji jinis (contone, standar utawa konstruktor parameterized) saka liyane. Iki uga disebut telpon konstruktor eksplisit.
Iku, ora akeh tenan, mung rong kedadean ngendi tembung dreaded iki digunakake. Saiki ayo deleng loro kahanan kasebut kanthi conto.

Conto siji - variabel conto lan variabel metode duwe jeneng sing padha

Ayo kita duwe kelas Humansing kolom "jeneng" ditetepake: Tembung kunci iki {ing conto} - 2Ayo namenggawe setter kanggo variabel (setter cukup bisa digunakake lan ora ana trick ing kene): Elinga yen kita ngliwati variabel Tembung kunci iki {ing conto} - 3menyang metode (setter). ) . Kita ngenalake variabel anyar lan (umum) bisa diarani apa wae sing dikarepake amarga mung katon ing {kurung kriting} metode kasebut . Elinga yen ana siji baris ing setter: setNameString newNamesetName
name = newName;
Yaiku, nyatane, kita ngenalake variabel anyar newNamelan ditugasake menyang variabel sing wis ana ing kelas kasebut name. Akeh programer ngira aneh kanggo ngenalake variabel kanthi jeneng anyar yen ing pungkasan kita ngomong babagan perkara sing padha. Babagan jeneng ing kelas Human. Mula, para pangembang basa mikir supaya trep nggunakake siji jeneng variabel. Ing tembung liyane, kok duwe rong jeneng kanggo variabel sing tegese padha. Yaiku, aku pengin nindakake kaya iki: Tembung kunci iki {ing conto} - 4Nanging ing kasus iki ana masalah . Saiki kita duwe rong variabel sing jenenge padha. Siji String namekalebu kelas Human, lan liyane String namekanggo metode setName. Mulane, mesin Java ora ngerti variabel sing sampeyan maksud nalika nulis string ing setter:
name = name;
Jawa njupuk sing paling cedhak - namesaka cara setName:
Tembung kunci iki {ing conto} - 5
lan dadi metu sing mung nemtokake nilai kanggo variabel namesaka cara iki, kanggo. Sing mesthi wae ora ana gunane. Mulane, sawetara cara dibutuhake kanggo mbedakake variabel namesaka kelas Humansaka variabel namesaka metode.Kanggo setNamengatasi masalah iki, tembung kunci dienalake this, sing ing kasus iki bakal nuduhake yen perlu nelpon variabel dudu metode, nanging saka kelas Human:
Tembung kunci iki {ing conto} - 6
Yaiku, thisbakal ngrujuk menyang obyek sing nelpon, kaya sing dikandhakake ing wiwitan artikel. Akibaté, jeneng wong setNamebakal disetel liwat setter kanggo obyek digawe. Ing ngisor iki kode tanpa nggunakake tembung kunci this. Kode kasebut nggawe obyek kelas Humanlan menehi jeneng:
Tembung kunci iki {ing conto} - 7
Lan ing ngisor iki kode program kanthi tembung kunci this:
public class Solution{
    public static void main(String[] args) {
        Human human1 = new Human();
        human1.setName("Volodya");
        human1.print();
    }
}
class Human{
    String name;
    public String getName() {
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    void print(){
        System.out.println(name);
    }
}
Mangkono, iku thisngindhari ngenalaken variabel anyar kanggo ndudohke bab sing padha, kang ndadekake kode kurang "overloaded" karo variabel tambahan.

Conto Loro - Nggunakake iki kanthi tegas nelpon konstruktor

Nelpon siji konstruktor saka liyane bisa migunani nalika sampeyan (cukup aneh) duwe sawetara konstruktor lan sampeyan ora pengin nulis ulang kode initialization diwenehi sadurungé ing konstruktor ing konstruktor anyar. Bingung? Kabeh iku ora medeni minangka misale jek. Deleng kode ing ngisor iki, ana rong konstruktor kelas Human:
class Human{
    int age;
    int weight;
    int height;

    Human(int age, int weight){
        this.age = age;
        this.weight = weight;
    }
    Human(int age, int weight, int height){
        //you call the constructor with two parameters
        this(age, weight);
        //and add the missing variable
        this.height = height;
    }
}
Ing kene kita duwe konstruktor loro-parameter sing nampa int agelan int weight. Ayo kita nulis rong baris kode ing kono:
this.age = age;
this.weight = weight;
banjur padha mutusaké kanggo nambah konstruktor liyane, karo telung paramèter, kang, saliyane kanggo umur lan bobot, uga njupuk dhuwur. Ing konstruktor anyar sampeyan bisa nulis iki:
this.age = age;
this.weight = weight;
this.height = height;
Nanging tinimbang mbaleni kode sing wis ditulis ing konstruktor iki, sampeyan bisa nggunakake tembung kunci kanggo thisnelpon konstruktor kanthi rong paramèter:
this(age, weight);
// and add the missing variable:
this.height = height;
Dadi, sampeyan ngandhani konstruktor kanthi telung paramèter:
  • nelpon konstruktor iki, kang wis loro paramèter.
  • lan nambah variabel sing ilang.
Iku kabeh =). Pungkasan, kita nyathet yen tembung kunci iki ing Jawa mung digunakake minangka bagean saka metode utawa konstruktor saka conto kelas. Nanging kanthi implisit, tembung kunci kasebut thisditerusake menyang kabeh metode kajaba sing statis (mula kenapa thisasring diarani parameter implisit) lan bisa digunakake kanggo ngrujuk menyang obyek sing diarani metode kasebut. Ora perlu wedi karo tembung kunci iki, amarga Thisora medeni.
Tembung kunci iki {ing conto} - 9
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION