Diferenca kryesore – kjo kundrejt super në Java
Fjalët kyçe "kjo" dhe "super" përdoren në programimin Java. Këto fjalë kyçe nuk mund të përdoren si variabla ose ndonjë emër tjetër identifikues. Java mbështet programimin e orientuar në objekt (OOP). Programi ose softueri mund të modelohet duke përdorur objekte. Objektet janë të pangopura duke përdorur klasa. Një shtyllë e OOP është trashëgimia. Ai siguron ripërdorim të kodit. Klasat që ekzistojnë tashmë janë superklasa, dhe klasat e prejardhura janë nënklasa. Fjala kyçe super mund të përdoret për të referuar një objekt të superklasës. Ka shumë objekte në sistem. Fjala kyçe "kjo" përdoret për të referuar një objekt aktual. Dallimi kryesor midis kësaj dhe super është "kjo" është një variabël referimi që përdoret për të referuar objektin aktual ndërsa "super" është një variabël referimi që përdoret për të referuar objektin e menjëhershëm të superklasës.
Çfarë është kjo në Java?
Fjala kyçe "kjo" përdoret për të referuar një objekt aktual. Referojuni programit të dhënë Java.
Figura 01: Programi Java duke përdorur këtë fjalë kyçe
Në Java, ekzistojnë tre lloje variablash. Ato janë variabla të shembullit, variabla lokale dhe variabla të klasës. Sipas programit të mësipërm, klasa Punonjës ka dy variabla të shembullit. Ata janë id dhe emri. Variablat lokale janë variablat që i përkasin metodave. Variablat e klasës ndahen nga të gjitha objektet. ID-ja dhe emri i kalohen konstruktorit të punonjësit. Nëse programuesi shkruan id=id; nuk do të inicializojë variablat e instancës sepse Konstruktori tashmë ka ID dhe emër. Nuk ka vlera për shembull variabla. Pra, printimi i tyre do të shfaqet null. Kur e përdorni këtë, i referohet objektit aktual. Prandaj, duke i dhënë id dhe emrin konstruktorit mund të vendosen variablat e instancës.
Fjala kyçe "kjo" mund të përdoret për të thirrur metodën aktuale të klasës. Referojuni programit të dhënë java.
klasa publike ThisDemo{
public static void main(String args){
Myclass myClass=i ri Myclass();
myClass. B();
}
}
class Myclass{
public void A(){
System.out.println("A");
}
public void B(){
System.out.prinltn("B");
this. A();
}
}
Klasa Myclass përmban dy metoda. Ato janë metoda A dhe B. Kur krijoni një objekt të Myclass dhe thirrni metodën B do të printojë B, A si rezultat. Në metodën B, pas shtypjes B ka një deklaratë si kjo. A(). Duke përdorur këtë, u thirr metoda aktuale e klasës.
Është gjithashtu e mundur të përdoret kjo fjalë kyçe për të thirrur konstruktorin aktual të klasës. Referojuni programit të dhënë.
klasa publike ThisDemo{
public static void main(String args){
A obj=i ri A(5);
}
}
klasa A{
publike A(){
System.out.println("Konstruktor A");
}
publik A(int x){
this();
System.out.println("Konstruktori i parametrizuar A");
}
}
Sipas programit të mësipërm, klasa A ka një konstruktor të paracaktuar dhe një konstruktor të parametrizuar. Kur krijohet një objekt i A, thirret konstruktori i parametrizuar. Në konstruktorin e parametrizuar, ekziston një deklaratë si kjo(); Ai do të thërrasë konstruktorin aktual të klasës që është A().
Çfarë është super në Java?
Fjala kyçe "super" lidhet me trashëgiminë. Trashëgimia është një koncept kryesor i programimit të orientuar në objekte. Ai lejon përdorimin e vetive dhe metodave të klasës tashmë ekzistuese në një klasë të re. Klasa tashmë ekzistuese njihet si klasa mëmë ose superklasa. Klasa e re njihet si klasa e fëmijës ose nënklasa.
'super' është një variabël referimi që përdoret për të referuar objektin e menjëhershëm të klasës prind. Fjala kyçe super mund t'i referohet variablës së shembullit të klasës prind të menjëhershëm ose të thërrasë metodën e klasës prind të menjëhershëm. Super() përdoret për të thirrur konstruktorin e menjëhershëm të klasës prind.
Supozojmë se ka dy klasa si A dhe B. Klasa A është superklasa dhe klasa B është nënklasa. Klasa A, B të dyja kanë metodën e shfaqjes.
klasa publike A{
ekran publik i zbrazët(){
System.out.println("A");
}
}
klasa publike B shtrihet A{
ekran publik i zbrazët(){
System.out.println("B");
}
}
Kur krijoni një objekt të tipit B dhe thërrisni ekranin e metodës, ai do të japë rezultatin B. Klasa A ka metodën e shfaqjes, por ajo anashkalohet nga metoda e shfaqjes së nënklasës B. Nëse programuesi dëshiron të thërrasë metodën e shfaqjes në klasën A, atëherë ai mund të përdorë fjalën kyçe super. Referojuni programit të dhënë Java.
Figura 02: Program Java duke përdorur super fjalë kyçe
Sipas programit të mësipërm, klasa A ka një variabël të emërtuar numër me vlerë 10. Klasa B shtrihet A dhe ka një variabël të emërtuar numër me vlerë 20. Në përgjithësi, kur krijoni një objekt të tipit B dhe thirrni metodën e shfaqjes duhet të japë numrin në nënklasë sepse vlera e superklasës është anashkaluar nga klasa e re. Duke përdorur super.num, shtypet vlera e numrit të superklasës.
Super() mund të përdoret për të thirrur konstruktorin e superklasës. Referojuni programit të mëposhtëm.
klasa publike kryesore {
public static void main(String args){
B obj=e re B();
}
}
klasa A{
A(){
System.out.println("A");
}
}
klasa B shtrihet A{
B(){
super();
System.out.println("B");
}
}
Sipas programit të mësipërm, klasa A ka një konstruktor A (). Klasa B ka konstruktorin B (). Klasa B zgjeron klasën A. Kur krijon një objekt të tipit B, ai do të printojë A, B si rezultat. Konstruktori B () ka super (). Prandaj, fillimisht thirret konstruktori A dhe më pas shkon te B. Edhe pse super () nuk është shkruar, si parazgjedhje thirret konstruktori prind.
Super duke përdorur metodën është si më poshtë.
Figura 03: Programi Java që thërret metodën e superklasës
Sipas programit të mësipërm, klasa A ka metodën e shfaqjes. Klasa B gjithashtu ka metodën e shfaqjes. Klasa B zgjeron A. Kur krijohet një objekt i tipit B dhe thirret metoda e shfaqjes do të japë dalje si A dhe B. Në metodën e shfaqjes së klasës B, metoda e shfaqjes së klasës A thirret duke përdorur super.display(). Kjo metodë shtyp fillimisht "A". Pastaj printon "B".
Cila është ngjashmëria midis kësaj dhe super?
Të dyja janë fjalë kyçe në programimin Java
Cili është ndryshimi midis kësaj dhe super?
Kjo vs Super |
|
'kjo' është një variabël referimi që përdoret për të referuar objektin aktual. | 'super' është një variabël referimi që përdoret për të referuar një objekt të menjëhershëm të superklasës. |
Variabli i shembullit | |
Një variabël e shembullit aktual të klasës mund të referohet duke përdorur këtë. | Ndryshorja e shembullit të superklasës mund të referohet duke përdorur super. |
Metoda e klasës | |
Metoda aktuale e klasës mund të thirret duke përdorur këtë. | Metoda e superklasës mund të thirret duke përdorur super. |
Konstruktor | |
Ndërtuesi aktual i klasës mund të thirret duke përdorur këtë(). | Konstruktori i superklasës mund të thirret duke përdorur super(). |
Përmbledhje – kjo vs super në Java
Fjalët kyçe "kjo" dhe "super" përdoren në Java. Fjalët kyçe nuk mund të përdoren si variabla ose ndonjë emër tjetër identifikues. Duket se janë të njëjtë, por kanë një ndryshim. Dallimi midis kësaj dhe super është se super është një variabël referimi që përdoret për të referuar objektin e menjëhershëm të superklasës ndërsa kjo është një variabël referimi që i referohet objektit aktual.
Shkarkoni PDF-në e kësaj vs super në Java
Mund të shkarkoni versionin PDF të këtij artikulli dhe ta përdorni për qëllime jashtë linje sipas shënimit të citimit. Ju lutemi shkarkoni versionin PDF këtu: Dallimi midis kësaj dhe super në Java