Avainero – tämä vs super Java
Avainsanat 'this' ja 'super' käytetään Java-ohjelmoinnissa. Näitä avainsanoja ei voi käyttää muuttujina tai muuna tunnistenimenä. Java tukee Object Oriented Programming (OOP) -ohjelmointia. Ohjelma tai ohjelmisto voidaan mallintaa objektien avulla. Objektit ovat kyltymättömiä luokkien avulla. Yksi OOP:n pilareista on perintö. Se tarjoaa koodin uudelleenkäytettävyyden. Jo olemassa olevat luokat ovat yliluokkia ja johdetut luokat ovat alaluokkia. Super-avainsanalla voidaan viitata superluokan objektiin. Järjestelmässä on useita kohteita. "Tätä"-avainsanaa käytetään viittaamaan nykyiseen kohteeseen. Keskeinen ero tämän ja superin välillä on "this" on viitemuuttuja, jota käytetään viittaamaan nykyiseen objektiin, kun taas "super" on viitemuuttuja, jota käytetään viittaamaan välittömään superluokkaobjektiin.
Mitä tämä on Javassa?
Avainsanaa 'this' käytetään viittaamaan nykyiseen objektiin. Katso annettu Java-ohjelma.
Kuva 01: Java-ohjelma tällä avainsanalla
Javassa on kolmenlaisia muuttujia. Ne ovat ilmentymämuuttujia, paikallismuuttujia ja luokkamuuttujia. Yllä olevan ohjelman mukaan luokassa Työntekijä on kaksi instanssimuuttujaa. Ne ovat id ja nimi. Paikalliset muuttujat ovat muuttujia, jotka kuuluvat menetelmiin. Luokkamuuttujat ovat kaikkien objektien yhteisiä. Tunnus ja nimi välitetään Työntekijän rakentajalle. Jos ohjelmoija kirjoittaa id=id; se ei alusta ilmentymämuuttujia, koska Constructorilla on jo tunnus ja nimi. Esimerkiksi muuttujilla ei ole arvoja. Joten niiden tulostaminen näyttää tyhjän. Tätä käytettäessä se viittaa nykyiseen objektiin. Siksi tunnuksen ja nimen antaminen rakentajalle voi asettaa ilmentymämuuttujat.
Avainsanaa 'this' voidaan käyttää nykyisen luokan menetelmän kutsumiseen. Katso annettu java-ohjelma.
julkinen luokka ThisDemo{
julkinen staattinen void main(String args){
Myclass myClass=new Myclass();
omaluokka. B();
}
}
luokka Omaluokka{
julkinen void A(){
System.out.println("A");
}
julkinen void B(){
System.out.prinltn("B");
this. A();
}
}
Luokka Myclass sisältää kaksi menetelmää. Ne ovat metodi A ja B. Kun luot Myclassin objektin ja vedotaan metodia B, tulosteena tulostetaan B, A. Menetelmässä B, tulostuksen B jälkeen, on käsky kuten this. A(). Tätä käyttämällä kutsuttiin nykyinen luokkamenetelmä.
Tällä avainsanalla voidaan myös kutsua nykyinen luokan rakentaja. Katso annettu ohjelma.
julkinen luokka ThisDemo{
julkinen staattinen void main(String args){
A obj=uusi A(5);
}
}
luokka A{
julkinen A(){
System.out.println("Rakentaja A");
}
julkinen A(int x){
this();
System.out.println("Parametrisoitu konstruktori A");
}
}
Yllä olevan ohjelman mukaan luokassa A on oletuskonstruktori ja parametroitu konstruktori. A:n objektia luotaessa kutsutaan parametroitua konstruktoria. Parametrisoidussa konstruktorissa on tällainen käsky(); Se kutsuu nykyistä luokan konstruktoria, joka on A().
Mikä on superhyvää Javassa?
Avainsana 'super' liittyy perintöön. Periytys on olio-ohjelmoinnin pääkäsite. Se mahdollistaa jo olemassa olevan luokan ominaisuuksien ja menetelmien käytön uuteen luokkaan. Jo olemassa olevaa luokkaa kutsutaan yläluokkaksi tai yläluokkaksi. Uusi luokka tunnetaan alaluokkana tai alaluokkana.
'Super' on viitemuuttuja, jota käytetään viittaamaan välittömään pääluokan objektiin. Superavainsana voi viitata välittömään emoluokan ilmentymämuuttujaan tai kutsua välittömään yläluokkaan. Super()-komentoa käytetään välittömän yläluokan rakentajan kutsumiseen.
Oletetaan, että on olemassa kaksi luokkaa A ja B. Luokka A on yliluokka ja luokka B on alaluokka. Molemmilla luokilla A ja B on näyttötapa.
julkinen luokka A{
julkinen void display(){
System.out.println("A");
}
}
julkinen luokka B laajentaa A{
julkinen void display(){
System.out.println("B");
}
}
Kun luot B-tyypin objektia ja kutsut metodin näyttöä, se antaa tulosteen B. Luokassa A on näyttömenetelmä, mutta alaluokan B näyttömenetelmä ohittaa sen. Jos ohjelmoija haluaa kutsua näyttömenetelmää luokassa A, hän voi käyttää superavainsanaa. Katso annettu Java-ohjelma.
Kuva 02: Java-ohjelma superavainsanalla
Yllä olevan ohjelman mukaan luokassa A on muuttuja nimeltä numero, jonka arvo on 10. Luokka B laajentaa A:ta ja siinä on muuttuja nimeltä numero arvolla 20. Yleensä luotaessa B-tyypin objektia ja kutsuttaessa näyttötapaa tulee antaa alaluokan numero, koska uusi luokka ohittaa superluokan arvon. Super.num-arvoa käyttämällä tulostetaan superluokan numeron arvo.
Super()-funktiota voidaan käyttää kutsumaan superluokan konstruktoria. Katso alla olevaa ohjelmaa.
julkinen luokka Main {
julkinen staattinen void main(String args){
B obj=uusi B();
}
}
luokka A{
A(){
System.out.println("A");
}
}
luokka B laajentaa A{
B(){
super();
System.out.println("B");
}
}
Yllä olevan ohjelman mukaan luokassa A on konstruktori A (). Luokassa B on konstruktori B (). Luokka B laajentaa luokkaa A. Kun luot B-tyypin objektia, se tulostaa tulosteena A, B. B ()-konstruktorissa on super (). Siksi ensin kutsutaan konstruktori A ja sitten siirrytään B:hen. Vaikka super():ta ei kirjoiteta, oletusarvoisesti kutsutaan pääkonstruktoria.
Menetelmän käyttö on seuraava.
Kuva 03: Java-ohjelma, joka kutsuu superluokkamenetelmän
Yllä olevan ohjelman mukaan luokassa A on näyttötapa. Luokassa B on myös näyttömenetelmä. Luokka B laajentaa A:ta. Kun luot B-tyypin objektin ja kutsut näyttömenetelmää, tulosteet ovat A ja B. Luokan B näyttömenetelmässä luokan A näyttömenetelmää kutsutaan komennolla super.display(). Tämä menetelmä tulostaa ensin A:n. Tulostaa sitten "B".
Mitä samank altaisuutta tällä ja superilla on?
Molemmat ovat Java-ohjelmoinnin avainsanoja
Mitä eroa tällä ja superilla on?
Tämä vs Super |
|
'Tämä' on viitemuuttuja, jota käytetään viittaamaan nykyiseen objektiin. | 'Super' on viitemuuttuja, jota käytetään viittaamaan välittömään superluokkaobjektiin. |
Instanssimuuttuja | |
Nykyisen luokan ilmentymämuuttujaan voidaan viitata käyttämällä tätä. | Superluokan ilmentymämuuttujaan voidaan viitata käyttämällä supera. |
luokkamenetelmä | |
Nykyinen luokkamenetelmä voidaan kutsua tällä. | Superclass-metodia voidaan kutsua käyttämällä supera. |
Rakentaja | |
Nykyinen luokan konstruktori voidaan kutsua käyttämällä tätä(). | Superluokan konstruktori voidaan kutsua käyttämällä super(). |
Yhteenveto – tämä vs super Java
Javassa käytetään avainsanoja 'this' ja 'super'. Avainsanoja ei voi käyttää muuttujina tai muuna tunnistenimenä. Ne näyttävät olevan samoja, mutta niillä on ero. Ero tämän ja superin välillä on se, että super on viitemuuttuja, jota käytetään viittaamaan välittömään superluokkaobjektiin, kun taas tämä on viitemuuttuja, joka viittaa nykyiseen objektiin.
Lataa PDF tästä vs super Javassa
Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainaushuomautuksen mukaisesti. Lataa PDF-versio tästä: Ero tämän ja superin välillä Javassa