Pagrindinis skirtumas – tai ir super Java
Raktiniai žodžiai „this“ir „super“naudojami Java programavime. Šie raktiniai žodžiai negali būti naudojami kaip kintamieji ar bet koks kitas identifikatoriaus pavadinimas. Java palaiko objektinį programavimą (OOP). Programą ar programinę įrangą galima modeliuoti naudojant objektus. Objektai yra nepasotinami naudojant klases. Vienas OOP ramstis yra paveldėjimas. Tai suteikia kodo pakartotinį naudojimą. Jau egzistuojančios klasės yra superklasės, o išvestinės klasės yra poklasiai. Super raktinis žodis gali būti naudojamas superklasės objektui nurodyti. Sistemoje yra keli objektai. Raktinis žodis „šis“naudojamas dabartiniam objektui nurodyti. Pagrindinis skirtumas tarp šio ir super yra tas, kad „tai“yra nuorodos kintamasis, naudojamas dabartiniam objektui nurodyti, o „super“yra atskaitos kintamasis, naudojamas tiesioginiam superklasės objektui nurodyti.
Kas tai yra Java?
Raktažodis „tai“naudojamas dabartiniam objektui nurodyti. Peržiūrėkite nurodytą Java programą.
01 pav.: Java programa naudojant šį raktinį žodį
Java programoje yra trijų tipų kintamieji. Tai yra egzempliorių kintamieji, vietiniai kintamieji ir klasės kintamieji. Pagal aukščiau pateiktą programą, klasė Darbuotojas turi du egzempliorių kintamuosius. Jie yra ID ir vardas. Vietiniai kintamieji yra kintamieji, priklausantys metodams. Klasės kintamuosius dalijasi visi objektai. ID ir vardas perduodami darbuotojo konstruktoriui. Jei programuotojas rašo id=id; ji neinicijuos egzempliorių kintamųjų, nes konstruktorius jau turi ID ir pavadinimą. Pavyzdžiui, kintamųjų reikšmių nėra. Taigi, spausdinant juos bus rodomas nulis. Naudojant tai, jis nurodo esamą objektą. Todėl konstruktoriui suteikus ID ir pavadinimą, galima nustatyti egzempliorių kintamuosius.
Raktažodis „this“gali būti naudojamas dabartiniam klasės metodui iškviesti. Žr. pateiktą Java programą.
viešoji klasė ThisDemo{
vieša statinė void main(String args){
Myclass myClass=new Myclass();
manoKlasė. B();
}
}
klasė Mano klasė{
vieša negaliojanti A(){
System.out.println("A");
}
vieša negalioja B(){
System.out.prinltn("B");
this. A();
}
}
Klasėje Myclass yra du metodai. Tai yra A ir B metodai. Kuriant Myclass objektą ir iškvietus metodą B, kaip išvestį bus išspausdintas B, A. B metode atspausdinus B yra toks teiginys. A(). Naudojant tai, buvo iškviestas dabartinės klasės metodas.
Taip pat galima naudoti šį raktinį žodį norint iškviesti esamą klasės konstruktorių. Peržiūrėkite nurodytą programą.
viešoji klasė ThisDemo{
vieša statinė void main(String args){
A obj=naujas A(5);
}
}
A klasė{
viešoji A(){
System.out.println("Konstruktorius A");
}
viešoji A(int x){
this();
System.out.println („Parametruotas konstruktorius A“);
}
}
Pagal aukščiau pateiktą programą, A klasė turi numatytąjį konstruktorių ir parametrizuotą konstruktorių. Kuriant A objektą, iškviečiamas parametrizuotas konstruktorius. Parametraizuotame konstruktoriuje yra toks teiginys (); Jis iškvies dabartinį klasės konstruktorių, kuris yra A().
Kas yra puiku Java?
Raktinis žodis „super“yra susijęs su paveldėjimu. Paveldėjimas yra pagrindinė objektinio programavimo koncepcija. Tai leidžia panaudoti jau esamos klasės savybes ir metodus naujai klasei. Jau esanti klasė yra žinoma kaip pagrindinė klasė arba superklasė. Naujoji klasė žinoma kaip antrinė klasė arba poklasis.
„Super“yra nuorodos kintamasis, naudojamas tiesiogiai pirminės klasės objektui nurodyti. Super raktinis žodis gali nurodyti tiesioginės pirminės klasės egzemplioriaus kintamąjį arba iškviesti tiesioginės pirminės klasės metodą. Super() naudojamas tiesioginiam pirminės klasės konstruktoriui iškviesti.
Tarkime, kad yra dvi klasės – A ir B. A klasė yra superklasė, o B klasė – poklasis. A ir B klasės turi rodymo metodą.
viešoji A klasė{
viešas tuščias ekranas(){
System.out.println("A");
}
}
viešoji B klasė pratęsia A{
viešas tuščias ekranas(){
System.out.println("B");
}
}
Kuriant B tipo objektą ir iškviečiant metodo ekraną, jis duos išvestį B. A klasė turi rodymo metodą, tačiau ją nepaiso B poklasio rodymo metodas. Jei programuotojas nori iškviesti rodymo metodą A klasėje, jis gali naudoti super raktinį žodį. Peržiūrėkite nurodytą Java programą.
02 pav.: Java programa naudojant super raktinį žodį
Pagal aukščiau pateiktą programą, A klasė turi kintamąjį pavadintą numeriu, kurio reikšmė yra 10. B klasė išplečia A ir turi kintamąjį pavadintą skaičių, kurio reikšmė 20. Paprastai kuriant B tipo objektą ir iškviečiant rodymo metodą turėtų pateikti skaičių poklasyje, nes naujoji klasė nepaiso superklasės reikšmės. Naudojant super.num, atspausdinama superklasės skaičiaus reikšmė.
Super() gali būti naudojamas superklasės konstruktoriui iškviesti. Žiūrėkite toliau pateiktą programą.
viešoji klasė Pagrindinė {
vieša statinė void main(String args){
B obj=naujas B();
}
}
A klasė{
A(){
System.out.println("A");
}
}
B klasė išplečia A{
B(){
super();
System.out.println("B");
}
}
Pagal aukščiau pateiktą programą, A klasė turi konstruktorių A (). B klasė turi konstruktorių B (). B klasė išplečia A klasę. Kuriant B tipo objektą, kaip išvestį išspausdins A, B. B () konstruktorius turi super (). Todėl pirmiausia iškviečiamas konstruktorius A, o tada pereina į B. Nors super () nerašomas, pagal numatytuosius nustatymus iškviečiamas pirminis konstruktorius.
Super metodas naudojant šį metodą yra toks.
03 pav.: Java programa, kuri iškviečia superklasės metodą
Pagal aukščiau pateiktą programą, A klasė turi rodymo metodą. B klasė taip pat turi rodymo metodą. B klasė išplečia A. Kuriant B tipo objektą ir iškviečiant rodymo metodą, išvestis bus kaip A ir B. B klasės rodymo metodu A klasės rodymo metodas iškviečiamas naudojant super.display(). Šis metodas pirmiausia išspausdina „A“. Tada išspausdinama „B“.
Koks panašumas tarp šio ir super?
Abu yra Java programavimo raktiniai žodžiai
Kuo skiriasi šis ir super?
Tai prieš superį |
|
„Tai“yra nuorodos kintamasis, naudojamas dabartiniam objektui nurodyti. | „Super“yra atskaitos kintamasis, naudojamas tiesioginiam superklasės objektui nurodyti. |
Pavyzdžio kintamasis | |
Dabartinės klasės egzemplioriaus kintamąjį galima nurodyti naudojant tai. | Superclass egzemplioriaus kintamąjį galima nurodyti naudojant super. |
Klasės metodas | |
Dabartinės klasės metodą galima iškviesti naudojant tai. | Superclass metodą galima iškviesti naudojant super. |
Konstruktorius | |
Dabartinis klasės konstruktorius gali būti iškviestas naudojant šį(). | Superclass konstruktorių galima iškviesti naudojant super(). |
Santrauka – tai prieš super Java
Raktiniai žodžiai „tai“ir „super“naudojami „Java“. Raktažodžiai negali būti naudojami kaip kintamieji ar bet koks kitas identifikatoriaus pavadinimas. Atrodo, kad jie yra vienodi, bet jie skiriasi. Skirtumas tarp šio ir super yra tas, kad super yra atskaitos kintamasis, kuris naudojamas tiesioginiam superklasės objektui nurodyti, o tai yra nuorodos kintamasis, nurodantis dabartinį objektą.
Atsisiųskite šio prieš superinį PDF failą Java versijoje
Galite atsisiųsti šio straipsnio PDF versiją ir naudoti ją neprisijungus, kaip nurodyta citatos pastaboje. Atsisiųskite PDF versiją čia: Skirtumas tarp šio ir super Java