Diferența dintre acest lucru și super în Java

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 pentru orice alt nume de identificator. Java suportă programarea orientată pe obiecte (OOP). Programul sau software-ul pot fi modelate folosind obiecte. Obiectele sunt insatiate folosind clase. Un pilon al POR este moștenire. Oferă reutilizarea codului. Clasele care există deja sunt superclase, iar clasele derivate sunt subclase. Cuvântul super poate fi utilizat pentru a trimite un obiect al superclasei. Există mai multe obiecte în sistem. Acest cuvânt cheie este folosit pentru a trimite un obiect curent. diferența cheie între acest și super este "aceasta 'este o variabilă de referință care este utilizată pentru a trimite obiectul curent în timp ce "super" este o variabilă de referință care este folosită pentru a se referi obiect superclass imediat. 

CUPRINS

1. Prezentare generală și diferență cheie
2. Ce este aceasta în Java
3. Ce este super în Java
4. Asemănări între acest și super în Java
5. Comparație comparație - acest vs super în Java în formă tabulară
6. rezumat

Ce este aceasta în Java?

Cuvântul cheie "acest" este folosit pentru a indica un obiect curent. Consultați programul Java dat.

Figura 01: Programul Java folosind acest cuvânt cheie

În Java, există trei tipuri de variabile. Ele sunt variabile de instanță, variabile locale și variabile de clasă. Conform programului de mai sus, angajatul de clasă are două variabile de instanță. Sunt id și nume. Variabilele locale sunt variabilele care aparțin metodelor. Variabilele de clasă sunt împărțite de toate obiectele. Id-ul și numele sunt transmise constructorului angajatului. Dacă programatorul scrie id = id; nu va inițializa variabilele de instanță deoarece constructorul are deja id și nume. Nu există valori pentru variabilele de exemplu. Prin urmare, tipărirea acestora va afișa null. Când folosiți acest lucru, acesta se referă la obiectul curent. Prin urmare, dând id și nume constructorului poate seta variabilele de instanță.

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

clasa publica ThisDemo

public static void principal (String [] args)

Myclass myClass = noua Myclass ();

myClass.B ();

clasa Myclass

void public A ()

System.out.println ( „A“);

void public B ()

System.out.prinltn ( „B“);

this.A ();

Clasa Myclass conține două metode. Ele sunt metoda A și B. Atunci când creați un obiect Myclass și invocați metoda B, va fi imprimat B, A ca ieșire. În metoda B, după tipărirea B există o declarație ca aceasta.A (). Folosind această metodă, a fost invocată metoda de clasă curentă.

De asemenea, este posibil să utilizați acest cuvânt cheie pentru a invoca constructorul de clasă curent. Consultați programul dat.

clasa publica ThisDemo

public static void principal (String [] args)

A obj = nou A (5);

clasa a

public A ()

System.out.println ("Constructor A");

public A (int x)

acest();

System.out.println ("Constructorul parametrizat A");

Conform programului de mai sus, clasa A are un constructor implicit și un constructor parametrizat. Atunci când creați un obiect din A, se numește constructorul parametrizat. În constructorul parametrizat, există o declarație ca aceasta (); Se va numi constructorul de clasă curent care este A ().

Ce este super în Java?

Cuvântul cheie "super" are legătură cu moștenirea. Moștenirea este un concept major de programare orientată pe obiecte. Permite utilizarea proprietăților și metodelor clasei deja existente într-o clasă nouă. Clasa deja existentă este cunoscută ca clasa parentală sau superclaj. Noua clasă este cunoscută sub numele de clasa sau subclasa copilului.

"Super" este o variabilă de referință care este utilizată pentru a se referi la obiectul clasic parental imediat. Cuvântul super poate să se refere la variabila instanței de clasă parentală imediată sau să invocă metoda de clasă parentală imediată. Super () este folosit pentru a invoca constructorul de clasă parentală imediat.

Să presupunem că există două clase ca A și B. Clasa A este superclaj și clasa B este subclasa. Clasa A, B au ambele metode de afișare.

clasa publica A

public void display ()

System.out.println ( „A“);

clasa publică B extinde A

public void display ()

System.out.println ( „B“);

Atunci când creați un obiect de tip B și apelați afișarea metodei, acesta va da ieșirea B. clasa A are metoda de afișare, dar este suprascrisă de metoda de afișare a subclaselor B. Dacă programatorul dorește să apeleze metoda de afișare în clasa A, atunci poate folosi cuvântul cheie super. Consultați programul Java dat.

Figura 02: Programul Java folosind cuvântul cheie super

În conformitate cu programul de mai sus, clasa A are o variabilă numit număr cu valoarea 10. Clasa B extinde A și are o variabilă numit număr cu valoarea 20. În general, la crearea unui obiect de tip B și apelarea metodei de afișare ar trebui să dea numărul în subclasa deoarece valoarea superclastică este suprascrisă de noua clasă. Folosind super.num, se imprimă valoarea numerică a superclasei.

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

public class Main

public static void principal (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 creați un obiect de tip B, acesta va tipări A, B ca ieșire. Constructorul B () are super (). Prin urmare, mai întâi constructorul A este invocat și apoi merge la B. Chiar dacă super () nu este scris, implicit constructorul părinte.

Sistemul super folosind metoda este după cum urmează.

Figura 03: Program Java care invocă metoda superclass

Conform programului de mai sus, clasa A are o metodă de afișare. Clasa B are și o metodă de afișare. Clasa B se extinde A. Atunci când creați un obiect de tip B și apelați metoda de afișare, veți da rezultate ca A și B. În metoda de afișare a clasei B, metoda de afișare a clasei A este apelată folosind super.display (). Această metodă imprimă mai întâi "A". Apoi imprima "B".

Care este asemănarea dintre acest lucru și super?

  • Ambele sunt cuvinte cheie în programarea Java.

Care este diferența dintre acest lucru și super?

Acest lucru vs Super

"Aceasta" este o variabilă de referință care este utilizată pentru a trimite obiectul curent. "Super" este o variabilă de referință care este folosită pentru a trimite un obiect superclass imediat.
 Variabila de instanta
O variabilă de instanță a clasei curente poate fi menționată utilizând aceasta. Suprastructura instanței superclass poate fi menționată folosind super.
Metoda de clasă
Metoda curentă a clasei poate fi invocată folosind aceasta. Metoda Superclass poate fi invocată folosind super.
 Constructor
Constructorul de clasă curent poate fi invocat utilizând acest (). Superclass constructor 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 utilizate ca variabile sau pe orice alt nume de identificator. Ele par a fi la fel, dar au o diferență. Diferența dintre acest lucru și super este că super este o variabilă de referință care este folosită pentru a se referi obiect superclass imediat în timp ce aceasta este o variabilă de referință care se referă la obiectul curent.

Descărcați PDF-ul acestei versiuni super în Java

Puteți descărca versiunea PDF a acestui articol și o puteți utiliza în scopuri offline conform notei de citare. Descărcați versiunea PDF aici: Diferența dintre acest lucru și super în Java

Referinţă:

1.Aceasta () și cuvânt cheie super în java și scopul său cu un scurt exemplu, cunoștințe Atoz, 31 ianuarie 2015. Disponibil aici 
2. "Acest cuvânt cheie în java - java punct." Disponibil aici  
3.tutorialspoint.com. "Java Moștenire". Punctul, Disponibil aici