JavaRush /Blog Jawa /Random-JV /Bedane tembung kunci iki lan super ing Jawa
grishin
tingkat
Харьков

Bedane tembung kunci iki lan super ing Jawa

Diterbitake ing grup
thislan superloro tembung kunci khusus ing Jawa sing makili conto saiki saka kelas lan superclass sawijining, mungguh. Programer Java asring mbingungake tembung kasebut lan nuduhake sethithik kesadaran babagan sifat khususe, sing asring ditakoni ing wawancara Java Core. Contone, saperangan saka pitakonan sing langsung teka ing pikiran bab thislan super, Apa bisa kanggo nemtokake makna beda kanggo tembung kunci thising Jawa? lan apa bedane tembung kunci thislan supering basa Jawa. Ora ngerti? Ya, aku ora menehi jawaban ing kene - bisa ditemokake ing pungkasan artikel. Bedane tembung kunci iki lan super ing Jawa - 1Dadi, kaya sing dakkandhakake ing wiwitan, prabédan utama ing antarane thislan supering Jawa yaiku thisconto kelas sing saiki diwakili, dene superconto kelas induk saiki diwakili. Iki minangka salah sawijining conto nggunakake variabel thislan super- sampeyan bisa uga wis ndeleng conto nelpon konstruktor siji saka liyane, sing diarani. nelpon konstruktor ing chain, iki bisa liwat nggunakake tembung kunci thislan super. Nang kelas, kanggo nelpon konstruktor ora-argumen sawijining, digunakake this(), nalika super()digunakake kanggo nelpon konstruktor ora-argumen, utawa kang uga disebut, konstruktor standar saka kelas induk. Miturut cara, kanthi cara iki sampeyan bisa nelpon ora mung konstruktor tanpa bantahan, nanging uga konstruktor liyane dening pass paramèter cocok. thisKita bakal weruh conto panggunaan iki enggal super. Uga ing thisJawa superdigunakake kanggo ngakses variabel saka conto kelas lan induke. Ing kasunyatan, padha bisa diakses tanpa ater-ater superlan this, nanging mung yen ing pemblokiran saiki variabel kuwi ora tumpang tindih karo variabel liyane, i.e. yen ora ngemot variabel lokal kanthi jeneng sing padha, yen ora, sampeyan kudu nggunakake jeneng kanthi awalan, nanging iki ora masalah, amarga ing wangun iki malah luwih bisa diwaca. Conto klasik saka pendekatan iki yaiku nggunakake thiskonstruktor ing njero sing njupuk parameter kanthi jeneng sing padha karo variabel conto. Mengko ing artikel kita bakal mangerteni apa beda liyane ana antarane superlan this, lan katon ing sawetara conto nggunakake.

Carane iki lan super padha

Sadurunge ndeleng prabédan antarane tembung kunci thislan super, ayo deleng sawetara persamaan:
  1. Loro-lorone this, lan supervariabel non-statis, saengga ora bisa digunakake ing konteks statis, tegese ora bisa digunakake ing metode utama. Iki bakal nyebabake kesalahan wektu kompilasi "variabel non-statis thisora bisa dirujuk saka konteks statis". Bab sing padha kedadeyan yen sampeyan nggunakake tembung kunci ing metode utama super.

  2. Loro-lorone this, lan superbisa digunakake ing konstruktor kanggo nelpon konstruktor liyane ing chain, contone, this() lan super() nelpon konstruktor tanpa bantahan saka kelas warisan lan tiyang sepah, mungguh.
Ing conto ing ngisor iki, pisanan kita pass telpon saka konstruktor ora-argumen kelas B kanggo konstruktor saka kelas padha B sing njupuk parameter siji saka jinis String, kang siji super("")nelpon konstruktor siji-argumen saka superclass.

class A{
   
    A(){
        System.out.println("Конструктор без аргументов класса A");
    }
   
    A(String args){
        System.out.println("Конструктор с одним аргументом класса A");
    }
}
 
class B extends A{
   
   B(){
        this(""); // вызов конструктора с одним аргументом класса B
        System.out.println("Конструктор без аргументов класса B");
    }
  
   B(String args){
        super(""); // вызов конструктора с одним аргументом класса A
        System.out.println("Конструктор с одним аргументом класса B");
    }
}
 
// Тест-класс и вывод 
public class Test {
   
    public static void main(String args[]) {      
       B b = new B();             
    }
 
}
Output: Konstruktor siji-argumen kelas A Konstruktor siji-argumen kelas B No-argumen konstruktor kelas B
  1. Nang konstruktor this, lan superkudu katon ing ndhuwur kabeh ekspresi liyane, ing awal banget, yen compiler bakal ngetokake pesen kesalahan. Saka kang nderek sing siji konstruktor ora bisa ngemot loro this(), lan super().

Bedane antarane super lan iki

Saiki kita ngerti carane nggunakake tembung kunci superlan thisngerti apa sing dibutuhake. Nanging ana pilihan liyane kanggo nggunakake tembung kunci iki sing ora dakkandhakake - ing kelas Inner, sing kanthi bantuan kasebut trep banget kanggo ngrujuk menyang kelas njaba nggunakake formulir notasi Outer. thiskanggo conto saiki lan Outer. super- kanggo wong tuwane. Aja lali ngganti Outer karo jeneng kelas njaba. Saiki ayo dhaptar sedhela bedane utama antarane tembung kunci thislansuper
  1. variabel thisnuduhake Kayata saiki saka kelas kang digunakake, déné iku supernuduhake Kayata saiki saka kelas induk.

  2. Saben konstruktor, yen ora ana telpon eksplisit menyang konstruktor liyane, kanthi implisit nelpon super()konstruktor ora ana argumentasi kelas induk, nanging sampeyan tansah duwe pilihan kanthi tegas nelpon konstruktor liyane kanthi salah siji this(), utawa super().
Iki mbokmenawa kabeh sing bisa dikandhakake babagan bedane tembung kunci thislan supering Jawa lan carane digunakake ing program. Kaya sing wis dingerteni, tujuan utamane yaiku nelpon siji konstruktor saka liyane lan deleng variabel conto sing diumumake ing kelas saiki lan kelas induke. Aja lali yen iki ora persis variabel biasa, lan saiki - jawaban kanggo pitakonanku, sing aku takon ing paragraf pisanan. Ora, variabel thisora bisa diwenehi nilai anyar amarga diumumake final. Sampeyan bisa nyoba kanggo nindakake iki ing IDE - sampeyan bakal nampa kesalahan kompilasi "sampeyan ora bisa nemtokake nilai anyar kanggo variabel this- wis ngumumaké final." Artikel asli kene .
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION