CodeGym /Blog Jawa /Acak /Jawa tembung kunci iki
John Squirrels
tingkat
San Francisco

Jawa tembung kunci iki

Diterbitake ing grup
Ing CodeGym, siswa dikenalake karo tembung kunci Jawa iki saka pelajaran pisanan. Suwe-suwe, maknane dadi jelas. Nanging ngelingi maneh, akeh wong sing bisa ngakoni yen wis suwe ora ngerti Zen tembung kunci iki. Artikel iki bakal narik sandiwara sing nutupi rahasia tembung kunci iki kanggo sapa wae sing durung bisa nglakoni... Aku duwe referensi Jawa Schildt , banjur ing kaca 171 sampeyan bisa ndeleng tembung kunci iki . dibutuhake kanggo cara kanggo referensi obyek sing disebut. Kita bisa mungkasi pelajaran kasebut. Nanging kita butuh spesifik. Minangka aturan, sampeyan kudu nggunakake iki ing rong kasus:
  1. Nalika variabel conto lan variabel metode / konstruktor duwe jeneng sing padha;
  2. Nalika sampeyan kudu nelpon jinis tartamtu saka konstruktor (Contone, konstruktor standar utawa konstruktor parameterized) saka jinis konstruktor liyane. Iki uga disebut panggilan konstruktor eksplisit.
Lan babagan iki - mung ana rong kasus sing nggunakake tembung kunci sing wedi iki. Saiki ayo deleng rong kasus kasebut ing conto.

Conto 1: Variabel conto lan variabel metode duwe jeneng sing padha.

Upamane kita duwe kelas Manungsa sing nemtokake kolom jeneng: Ayo nggawe setter kanggo variabel jeneng (setter fungsine kanthi lengkap - ora ana sing nyekel ing kene):

class Human {
    String name;


    public void setName(String newName) {
        name = newName;
    }
}
Elinga yen kita ngliwati String newName menyang metode setName setName Kita ngumumake variabel anyar lan bisa menehi jeneng apa wae sing dikarepake amarga bakal katon mung ing kurung kriting ({}) sing nyakup metode setName . Elinga yen setter duwe baris siji:

name = newName;
Ing kene kita wis ngenalake variabel anyar sing diarani newName lan ditugasake menyang variabel jeneng obyek sing wis ana . Akeh programer bisa nemokake aneh kanggo ngenalake variabel kanthi jeneng anyar nalika pungkasane kita ngomong babagan perkara sing padha. Yaiku, kita ngomong babagan lapangan jeneng ing kelas Manungsa . Pramila para pangripta Jawa ngira-ngira cara kanggo nggunakake jeneng variabel sing padha. Ing tembung liyane, kok duwe rong jeneng kanggo variabel sing nuduhake bab sing padha. Ing tembung liyane, kita pengin nindakake kaya iki:

class Human {
    String name;


    public void setName(String name) {
        name = name;
    }
}
Nanging ing kene kita nemoni masalah . Saiki kita duwe rong variabel kanthi jeneng sing padha. Siji jeneng String kalebu kelas Manungsa , dene jeneng String liyane kalebu metode setName . Akibaté, JVM ora bakal ngerti variabel apa sing sampeyan gunakake nalika nulis baris ing ngisor iki ing setter:

name = name;
Jawa nganggep sampeyan tegese variabel jeneng sing paling cedhak , yaiku sing saka metode setName : Tembung kunci iki (kanthi conto) - 3Dadi ternyata sampeyan mung nemtokake variabel jeneng metode kasebut dhewe. Sing mesthi wae ora ana gunane. Mulane, basa mbutuhake sawetara cara kanggo mbedakake variabel jeneng kelas Manungsa saka variabel jeneng ing metode setName . Masalah iki ditanggulangi kanthi ngenalake tembung kunci iki , sing ing kasus iki nuduhake yen sampeyan pengin ngrujuk variabel sing ana gandhengane karo conto kelas Manungsa , dudu variabel ing metode kasebut: Ing tembung liya, ikiTembung kunci iki (kanthi conto) - 4nuduhake obyek nelpon, kita kasebut ing awal artikel. Akibaté, cara setName nyetel jeneng wong ing obyek digawe. Ing ngisor iki kode program tanpa nggunakake tembung kunci iki . Kode kasebut nggawe obyek Manungsa lan menehi jeneng kasebut: Tembung kunci iki (kanthi conto) - 5Lan iki kode kanthi tembung kunci iki :

public class Solution {
    public static void main(String[] args) {
        Human human1 = new Human();
        human1.setName("Vinny");
        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, iki ngidini kita ora ngenalake variabel anyar kanggo nuduhake perkara sing padha, nggawe kode luwih resik lan kurang rame karo variabel ekstra.

Conto 2: Nggunakake iki kanggo telpon konstruktor eksplisit

Nelpon siji konstruktor saka liyane bisa migunani yen sampeyan duwe (cukup aneh) sawetara konstruktor lan sampeyan ora pengin konstruktor anyar kanggo duplikat kode initialization sadurunge ditulis ing konstruktor beda. Bingung? Iku ora dadi medeni minangka misale jek. Deleng kode ing ngisor iki. Wis loro konstruktor kanggo kelas Manungsa :

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) {
        // Call the constructor with two parameters
        this(age, weight);
        // and then initialize the missing variable
        this.height = height;
    }
}
Ing kene kita wis nyedhiyakake konstruktor kanthi rong paramèter: umur int lan bobot int . Upaminipun gadhah rong baris kode:

this.age = age;
this.weight = weight;
Mengko kita arep kanggo nambah konstruktor liyane karo telung paramèter, nambah dhuwur kanggo umur ana lan paramèter bobot. Sampeyan bisa nulis konstruktor anyar kaya iki:

this.age = age;
this.weight = weight;
this.height = height;
Nanging tinimbang mbaleni kode sing ana ing konstruktor iki, sampeyan bisa nggunakake tembung kunci iki kanggo nyebut konstruktor kanthi rong paramèter:

this(age, weight);
// and then initialize the missing variable:
this.height = height;
Kaya-kaya kita ngomong karo konstruktor telung parameter:
  • nelpon iki konstruktor liyane sing wis loro paramèter
  • banjur nambah variabel liyane.
Iku kabeh =). Pungkasan, kita nyathet yen ing Jawa tembung kunci iki mung digunakake ing metode lan konstruktor. Nanging iki diterusake sacara implisit kanggo kabeh metode non-statis (mulane iki asring diarani parameter implisit) lan bisa digunakake kanggo ngrujuk menyang obyek sing diarani metode kasebut. Aja wedi karo tembung kunci iki, amarga iki ora medeni.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION