logo

Razlika između ovoga i super u Javi

The 'ovaj' i ' super' ključne riječi su rezervirane riječi koje se koriste u drugačijem kontekstu. Osim toga, Java također nudi ovaj() i super() konstruktori koji se koriste u kontekstu konstruktora. U ovom odjeljku raspravljat ćemo o razlike između ove i super ključne riječi i this() i super() konstruktor, u Javi.

super ključna riječ i super() konstruktor

super ključna riječ

Rezervirana ključna riječ koja se koristi za pozivanje metode ili varijable osnovne klase poznata je kao a super ključna riječ. Ne možemo koristiti super ključna riječ kao identifikator . Ključna riječ super ne koristi se samo za označavanje instance osnovne klase, već i za statičke članove.

super() Konstruktor

The super() uglavnom se koristi za pozivanje funkcija članova osnovne klase i konstruktora.

java mvc

Uzmimo primjer oba super ključna riječ i super() razumjeti kako rade.

SuperExample1.java

 // import required classes and packages package javaTpoint.MicrosoftJava; // create Animal class which is base class of Animal class Animal{ // data member of Animal class String color = 'white'; } // create child class of Animal class Cat extends Animal{ //default constructor Cat() { // data members of the Cat class String color = 'Brown'; System.out.println('The cat is of color '+super.color); // calling parent class data member System.out.println('The cat is of color '+color); } } // create child class for Car class SuperExample1 extendsCat { // default constructor SuperExample1() { // calling base class constructor super(); System.out.println('The eyes of the cat is blue.'); } // main() method start publicstaticvoid main(String[] args) { // call default constructor of the SuperExample1 new SuperExample1(); System.out.println('Inside Main'); } } 

Izlaz:

ovo protiv super u Javi

U metodi main() dali smo izjavu novi superprimjer1() . Poziva konstruktora Superprimjer1 razreda.

Unutar konstruktora, dali smo izjavu super() koji poziva konstruktor svoje roditeljske klase, tj. Mačka. U konstruktoru smo napravili tri izjave:

stol od lateksa
  1. Inicijalizirajte boju s vrijednošću 'Smeđa'.
  2. Ispis člana podataka roditeljske klase.
  3. Ispis trenutnog člana podataka klase.

Kada se izvrši druga izjava, tijek programa skače na klasu Animal da pristupi vrijednosti svojih podatkovnih članova. Nakon pristupanja tok se vraća na Mačka konstruktor klase i ispisuje ga. Nakon toga, posljednja izjava izvršava i ispisuje vrijednost varijabli trenutne klase.

Nakon izvršenja zadnje izjave od Mačka klase, tok se vraća konstruktoru klase Superprimjer1 i izvršava preostale naredbe.

Nakon završetka izvršenja Superprimjer1() , tok se vraća na metodu main() i izvršava preostale naredbe.

Napomena: Kako bismo koristili super(), moramo se pobrinuti da to bude prva izjava u konstruktoru klase. Možemo ga koristiti samo za referiranje na roditeljski konstruktor klase.

ova ključna riječ i ovaj() konstruktor

ovu ključnu riječ

To je rezervirana ključna riječ u Javi koja se koristi za upućivanje na trenutni objekt klase. To je referentna varijabla preko koje se poziva metoda. Druge upotrebe ove ključne riječi su:

pozivanje js funkcije iz html-a
  • Možemo ga koristiti za upućivanje na varijablu instance trenutne klase.
  • Možemo ga koristiti za pozivanje metode trenutne klase (implicitno).
  • Možemo ga proslijediti kao argument u pozivima metode i konstruktora.
  • Također ga možemo koristiti za vraćanje trenutne instance klase iz metode.

this() konstruktor

Konstruktor se koristi za pozivanje jednog konstruktora iz drugog iz iste klase. Uzmimo primjer oba ovaj ključna riječ i ovaj() razumjeti kako rade.

birač upita

ThisExample1.java

 // import required classes and packages package javaTpoint.MicrosoftJava; // create ThisExample1 class to understand the working of this() and this class ThisExample1 { // initialize instance and static variable int x = 5; staticinty = 10; // default constructor of class ThisExample1 ThisExample1() { // invoking current class constructor this(5); System.out.println('We are insie of the default constructor.'); System.out.println('The value of x = '+x); } ThisExample1(int x) { this.x = x; // override value of the current class instance variable System.out.println('We are inside of the parameterized constructor.'); System.out.println('The value of y = '+y); } publicstaticvoid main(String[] args) { // invoking constructor of the current class new ThisExample1(); System.out.println('Inside Main'); } } 

Izlaz:

ovo protiv super u Javi

Razlika između ove i super ključne riječi

Sljedeća tablica opisuje ključnu razliku između ovog i super:

ovaj super
Trenutna instanca klase predstavljena je ovom ključnom riječi. Trenutačna instanca roditeljske klase predstavljena je ključnom riječi super.
Kako bismo pozvali zadani konstruktor trenutne klase, možemo koristiti ovu ključnu riječ. Kako bismo pozvali zadani konstruktor roditeljske klase, možemo koristiti ključnu riječ super.
Može se pozvati iz statičkog konteksta. To znači da se može pozvati iz statičkog konteksta. Ne može se pozvati iz statičkog konteksta. To znači da se ne može pozvati iz statičkog konteksta.
Možemo ga koristiti za pristup samo trenutnim članovima podataka klase i funkcijama članova. Možemo ga koristiti za pristup članovima podataka i funkcijama članova nadređene klase.

Razlika između this() i super() konstruktora

ovaj() super()
Konstruktor this() odnosi se na trenutni objekt klase. Konstruktor super() upućuje na neposredni nadređeni objekt klase.
Koristi se za pozivanje metode trenutne klase. Koristi se za pozivanje metoda roditeljske klase.
Može se koristiti bilo gdje u parametriziranom konstruktoru. To je uvijek prvi redak u konstruktoru podređene klase.
Koristi se za pozivanje verzije nadklase nadjačane metode. Koristi se za pozivanje verzije nadklase nadjačane metode.