Diferența dintre asta și super în Java

Cuprins:

Diferența dintre asta și super în Java
Diferența dintre asta și super în Java

Video: Diferența dintre asta și super în Java

Video: Diferența dintre asta și super în Java
Video: Care e diferența dintre Java și JavaScript 2024, Noiembrie
Anonim

Diferența cheie – asta vs super în Java

Cuvintele cheie „acest” și „super” sunt folosite în programarea Java. Aceste cuvinte cheie nu pot fi folosite ca variabile sau orice alt nume de identificare. Java acceptă programarea orientată pe obiecte (OOP). Programul sau software-ul poate fi modelat folosind obiecte. Obiectele sunt nesățioase folosind clase. Un pilon al POO este moștenirea. Oferă reutilizarea codului. Clasele care există deja sunt superclase, iar clasele derivate sunt subclase. Cuvântul cheie super poate fi folosit pentru a trimite un obiect al superclasei. Există mai multe obiecte în sistem. Cuvântul cheie „acest” este folosit pentru a trimite un obiect curent. Diferența cheie între acest lucru și super este că „aceasta” este o variabilă de referință care este folosită pentru a trimite obiectul curent, în timp ce „super” este o variabilă de referință care este folosită pentru a face referire la obiectul superclasă imediată.

Ce este asta în Java?

Cuvântul cheie „acest” este folosit pentru a face referire la un obiect curent. Consultați programul Java dat.

Diferența dintre aceasta și super în Java
Diferența dintre aceasta și super în Java

Figura 01: Program Java care utilizează acest cuvânt cheie

În Java, există trei tipuri de variabile. Sunt variabile de instanță, variabile locale și variabile de clasă. Conform programului de mai sus, clasa Angajat are două variabile de instanță. Ele sunt id și nume. Variabilele locale sunt variabilele aparținând metodelor. Variabilele de clasă sunt partajate de toate obiectele. Id-ul și numele sunt transmise constructorului Employee. Dacă programatorul scrie id=id; nu va inițializa variabilele de instanță deoarece Constructorul are deja id și nume. Nu există valori de exemplu variabile. Deci, imprimarea lor va afișa null. Când utilizați acest lucru, se referă la obiectul curent. Prin urmare, oferirea ID și nume constructorului poate seta variabilele de instanță.

Cuvântul cheie „acest” poate fi folosit pentru a invoca metoda de clasă curentă. Consultați programul Java dat.

curs public ThisDemo{

public static void main(String args){

Myclass myClass=new Myclass();

myClass. B();

}

}

Clasa Clasa mea{

public void A(){

System.out.println(„A”);

}

public void B(){

System.out.prinltn(„B”);

this. A();

}

}

Clasa Myclass conține două metode. Ele sunt metoda A și B. Când se creează un obiect din Myclass și se invocă metoda B, se va imprima B, A ca rezultat. În metoda B, după imprimarea B există o declarație ca aceasta. A(). Folosind aceasta, a fost invocată metoda actuală a clasei.

Este de asemenea posibil să folosiți acest cuvânt cheie pentru a invoca constructorul de clasă curent. Consultați programul dat.

curs public ThisDemo{

public static void main(String args){

A obj=nou A(5);

}

}

clasa A{

public A(){

System.out.println(„Constructor A”);

}

public A(int x){

this();

System.out.println(„Constructor parametrizat A”);

}

}

Conform programului de mai sus, clasa A are un constructor implicit și un constructor parametrizat. Când se creează un obiect al lui A, se apelează constructorul parametrizat. În constructorul parametrizat, există o instrucțiune ca aceasta(); Va apela constructorul de clasă curent care este A().

Ce este super în Java?

Cuvântul cheie „super” este legat de moștenire. Moștenirea este un concept major al programarii orientate pe obiecte. Permite utilizarea proprietăților și metodelor clasei deja existente la o nouă clasă. Clasa deja existentă este cunoscută ca clasa părinte sau superclasa. Noua clasă este cunoscută ca clasa secundară sau subclasa.

„Super” este o variabilă de referință care este folosită pentru a trimite obiectul clasei părinte imediate. Cuvântul cheie super poate face referire la variabila de instanță a clasei părinte imediate sau poate invoca metoda clasei părinte imediate. Super() este folosit pentru a invoca constructorul imediat al clasei părinte.

Să presupunem că există două clase ca A și B. Clasa A este superclasa și clasa B este subclasa. Ambele clase A și B au metoda de afișare.

clasa publică A{

afișare public void(){

System.out.println(„A”);

}

}

clasa publică B extinde A{

afișare public void(){

System.out.println(„B”);

}

}

La crearea unui obiect de tip B și la apelarea metodei de afișare, acesta va da rezultatul B. clasa A are metoda de afișare, dar este suprascrisă de metoda de afișare a subclasei B. Dacă programatorul dorește să apeleze metoda de afișare din clasa A, atunci poate folosi cuvântul cheie super. Consultați programul Java dat.

Diferența dintre aceasta și super în Java_Figura 02
Diferența dintre aceasta și super în Java_Figura 02

Figura 02: programul Java care folosește super-cheie-cheie

Conform programului de mai sus, clasa A are un număr denumit variabil cu valoarea 10. Clasa B se extinde pe A și are un număr denumit variabil cu valoarea 20. În general, la crearea unui obiect de tip B și apelarea metodei de afișare ar trebui să dea numărul din subclasă deoarece valoarea superclasei este suprascrisă de noua clasă. Folosind super.num, valoarea numărului superclasei este tipărită.

Super() poate fi folosit pentru a apela constructorul superclasei. Consultați programul de mai jos.

clasa publică principală {

public static void main(String args){

B obj=nou B();

}

}

clasa A{

A(){

System.out.println(„A”);

}

}

clasa B extinde A{

B(){

super();

System.out.println(„B”);

}

}

Conform programului de mai sus, clasa A are un constructor A (). Clasa B are constructorul B (). Clasa B extinde clasa A. Când se creează un obiect de tip B, acesta va imprima A, B ca rezultat. Constructorul B () are super (). Prin urmare, mai întâi este invocat constructorul A și apoi trece la B. Chiar dacă super () nu este scris, implicit constructorul părinte este numit.

Super folosind metoda este după cum urmează.

Diferența cheie între aceasta și super în Java
Diferența cheie între aceasta și super în Java

Figura 03: Program Java care invocă metoda superclasei

Conform programului de mai sus, clasa A are metoda de afișare. Clasa B are și metoda de afișare. Clasa B se extinde pe A. Când se creează un obiect de tip B și se apelează metoda de afișare va da rezultate ca A și B. În metoda de afișare din clasa B, metoda de afișare din clasa A este apelată folosind super.display(). Metoda respectivă imprimă mai întâi „A”. Apoi tipărește „B”.

Care este asemănarea dintre asta și super?

Ambele sunt cuvinte cheie în programarea Java

Care este diferența dintre asta și super?

Acest vs Super

„aceasta” este o variabilă de referință care este folosită pentru a trimite obiectul curent. „Super” este o variabilă de referință care este folosită pentru a trimite un obiect de superclasă imediat.
Variabilă de instanță
O variabilă de instanță de clasă curentă poate fi referită folosind aceasta. Variabila de instanță Superclass poate fi referită folosind super.
Metoda de clasă
Metoda de clasă curentă poate fi invocată folosind aceasta. Metoda Superclass poate fi invocată folosind super.
Constructor
Constructorul de clasă curent poate fi invocat folosind acest(). Constructorul de superclase poate fi invocat folosind super().

Rezumat – acest lucru vs super în Java

Cuvintele cheie „acest” și „super” sunt folosite în Java. Cuvintele cheie nu pot fi folosite ca variabile sau orice alt nume de identificare. Par a fi la fel, dar au o diferență. Diferența dintre aceasta și super este că super este o variabilă de referință care este folosită pentru a trimite obiectul superclasă imediată, în timp ce aceasta este o variabilă de referință care se referă la obiectul curent.

Descărcați PDF-ul acestui vs super în Java

Puteți descărca versiunea PDF a acestui articol și o puteți utiliza în scopuri offline, conform nota de citare. Vă rugăm să descărcați versiunea PDF aici: Diferența dintre aceasta și super în Java

Recomandat: