Bununla Java-da super arasındakı fərq

Mündəricat:

Bununla Java-da super arasındakı fərq
Bununla Java-da super arasındakı fərq

Video: Bununla Java-da super arasındakı fərq

Video: Bununla Java-da super arasındakı fərq
Video: Java'da Statik ve Statik Olmayan Değişken ve Metotların Hafıza Yönetimi 2024, Iyul
Anonim

Əsas fərq – Java-da bu super ilə

“Bu” və “super” açar sözləri Java proqramlaşdırmasında istifadə olunur. Bu açar sözlər dəyişənlər və ya hər hansı digər identifikator adı kimi istifadə edilə bilməz. Java obyekt yönümlü proqramlaşdırmanı (OOP) dəstəkləyir. Proqram və ya proqram obyektlərdən istifadə edərək modelləşdirilə bilər. Obyektlər siniflərdən istifadə etməklə doymur. OOP-un bir sütunu mirasdır. Kodun təkrar istifadəsini təmin edir. Artıq mövcud olan siniflər supersiniflər, törəmə siniflər isə alt siniflərdir. Super açar sözü supersinifin obyektinə istinad etmək üçün istifadə edilə bilər. Sistemdə çoxlu obyektlər var. 'Bu' açar sözü cari obyektə istinad etmək üçün istifadə olunur. Bununla super arasındakı əsas fərq odur ki, 'bu' cari obyektə istinad etmək üçün istifadə edilən istinad dəyişənidir, 'super' isə dərhal superklass obyektinə istinad etmək üçün istifadə edilən istinad dəyişənidir.

Bu Java-da nədir?

“Bu” açar sözü cari obyektə istinad etmək üçün istifadə olunur. Verilmiş Java proqramına istinad edin.

Java-da bu ilə super arasındakı fərq
Java-da bu ilə super arasındakı fərq

Şəkil 01: Bu açar sözdən istifadə edən Java proqramı

Java-da üç növ dəyişən var. Bunlar nümunə dəyişənləri, yerli dəyişənlər və sinif dəyişənləridir. Yuxarıdakı proqrama əsasən, sinif əməkdaşının iki nümunə dəyişəni var. Onlar id və addır. Yerli dəyişənlər metodlara aid olan dəyişənlərdir. Sinif dəyişənləri bütün obyektlər tərəfindən paylaşılır. İd və ad İşçi konstruktoruna ötürülür. Proqramçı id=id yazırsa; o, nümunə dəyişənlərini işə salmayacaq, çünki Konstruktorda artıq id və ad var. Nümunə dəyişənləri üçün heç bir dəyər yoxdur. Beləliklə, onları çap etdikdə null görünəcək. Bunu istifadə edərkən cari obyektə istinad edir. Beləliklə, konstruktora id və ad vermək misal dəyişənlərini təyin edə bilər.

“Bu” açar sözü cari sinif metodunu çağırmaq üçün istifadə edilə bilər. Verilmiş java proqramına baxın.

ictimai sinif BuDemo{

public statik etibarsız əsas(String args){

Myclass myClass=new Myclass();

myClass. B();

}

}

sinif Myclass{

ictimai etibarsızlıq A(){

System.out.println("A");

}

ictimai etibarsızlıq B(){

System.out.prinltn("B");

this. A();

}

}

Myclass sinfi iki metoddan ibarətdir. Onlar A və B metodlarıdır. Myclass obyektini yaratdıqda və B metodunu işə saldıqda B, A çıxış kimi çap olunacaq. B metodunda B çap edildikdən sonra belə bir ifadə var. A(). Bundan istifadə edərək, cari sinif metodu işə salındı.

Bu açar sözdən cari sinif konstruktorunu çağırmaq üçün də istifadə etmək mümkündür. Verilmiş proqrama istinad edin.

ictimai sinif BuDemo{

public statik etibarsız əsas(String args){

A obyekt=yeni A(5);

}

}

sinif A{

ictimai A(){

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

}

ictimai A(int x){

this();

System.out.println("Parametrləşdirilmiş Konstruktor A");

}

}

Yuxarıda göstərilən proqrama əsasən A sinfi standart konstruktora və parametrləşdirilmiş konstruktora malikdir. A obyekti yaradılarkən parametrləşdirilmiş konstruktor çağırılır. Parametrləşdirilmiş konstruktorda belə bir ifadə var(); O, A() olan cari sinif konstruktorunu çağıracaq.

Javada super nədir?

‘Super’ açar sözü mirasla bağlıdır. Varislik Obyekt yönümlü proqramlaşdırmanın əsas anlayışıdır. Artıq mövcud olan sinfin xassələrindən və metodlarından yeni bir sinfə istifadə etməyə imkan verir. Artıq mövcud olan sinif ana sinif və ya super sinif kimi tanınır. Yeni sinif uşaq sinfi və ya alt sinif kimi tanınır.

‘Super’ birbaşa ana sinif obyektinə istinad etmək üçün istifadə edilən istinad dəyişənidir. Super açar söz dərhal ana sinif nümunə dəyişəninə istinad edə bilər və ya dərhal ana sinif metodunu çağıra bilər. super() birbaşa ana sinif konstruktorunu çağırmaq üçün istifadə olunur.

Fərz edək ki, A və B kimi iki sinif var. A sinfi super sinif, B sinfi isə alt sinifdir. A, B siniflərinin hər ikisinin ekran üsulu var.

ictimai sinif A{

ictimai etibarsız ekran(){

System.out.println("A");

}

}

ictimai B sinfi A-nı genişləndirir{

ictimai etibarsız ekran(){

System.out.println("B");

}

}

B tipli obyekt yaradarkən və metod displeyini çağırarkən, o, B çıxışını verəcək. A sinfində ekran metodu var, lakin B alt sinifinin göstərmə metodu onu ləğv edir. Əgər proqramçı A sinfində displey metodunu çağırmaq istəyirsə, o zaman super açar sözündən istifadə edə bilər. Verilmiş Java proqramına istinad edin.

Java_Şəkil 02-də bu ilə super arasındakı fərq
Java_Şəkil 02-də bu ilə super arasındakı fərq

Şəkil 02: super açar sözdən istifadə edən Java proqramı

Yuxarıdakı proqrama əsasən, A sinfi 10 dəyəri olan bir dəyişənə malikdir. B sinfi A-nı genişləndirir və 20 dəyəri olan dəyişən adlı bir nömrəyə malikdir. Ümumiyyətlə, B tipli obyekt yaradarkən və göstərmə metodunu çağırarkən alt sinifdəki nömrəni verməlidir, çünki superclass dəyəri yeni sinif tərəfindən ləğv edilir. Super.num istifadə edərək, superclass nömrəsinin dəyəri çap olunur.

Super() superclass konstruktorunu çağırmaq üçün istifadə edilə bilər. Aşağıdakı proqrama baxın.

ictimai sinif Əsas {

public statik etibarsız əsas(String args){

B obyekt=yeni B();

}

}

sinif A{

A(){

System.out.println("A");

}

}

B sinfi A-nı genişləndirir{

B(){

super();

System.out.println("B");

}

}

Yuxarıda göstərilən proqrama əsasən A sinfi A konstruktoruna malikdir (). B sinfində B () konstruktoru var. B sinfi A sinfini genişləndirir. B tipli obyekt yaradarkən o, çıxış kimi A, B çap edəcək. B () konstruktorunda super () var. Buna görə də əvvəlcə A konstruktoru çağırılır və sonra B-yə keçir.super () yazılmasa da, defolt olaraq ana konstruktor çağırılır.

Metodu istifadə edən super aşağıdakı kimidir.

Java-da bu ilə super arasındakı əsas fərq
Java-da bu ilə super arasındakı əsas fərq

Şəkil 03: Superklass metodunu işə salan Java proqramı

Yuxarıdakı proqrama əsasən, A sinfində ekran metodu var. B sinfinin də göstərmə üsulu var. B sinfi A-nı genişləndirir. B tipli obyekt yaradarkən və göstərmə metoduna zəng etdikdə A və B kimi çıxışlar veriləcək. B sinfində displey metodunda A sinfi displey metodu super.display() vasitəsilə çağırılır. Bu üsul əvvəlcə “A” hərfini çap edir. Sonra "B" çap edir.

Bununla super arasındakı oxşarlıq nədir?

Hər ikisi Java proqramlaşdırmasında açar sözlərdir

Bununla super arasındakı fərq nədir?

Bu Super vs

'Bu' cari obyektə istinad etmək üçün istifadə edilən istinad dəyişənidir. "Super" dərhal supersinif obyektinə istinad etmək üçün istifadə olunan istinad dəyişənidir.
Nümunə Dəyişən
Bundan istifadə etməklə cari sinif nümunə dəyişəninə istinad edilə bilər. Superclass instansiya dəyişəni super istifadə edilə bilər.
Sinif Metodu
Cari sinif metodu bundan istifadə etməklə işə salına bilər. Superclass metodu super istifadə etməklə işə salına bilər.
Konstruktor
Cari sinif konstruktoru this() vasitəsilə işə salına bilər. Superclass konstruktoru super() istifadə edərək işə salına bilər.

Xülasə – Java-da bu super və super

“Bu” və “super” açar sözləri Java-da istifadə olunur. Açar sözlər dəyişənlər və ya hər hansı digər identifikator adı kimi istifadə edilə bilməz. Görünür, onlar eynidir, amma fərqləri var. Bunun super ilə super arasındakı fərq ondan ibarətdir ki, super dərhal supersinif obyektinə istinad etmək üçün istifadə edilən istinad dəyişənidir, bu isə cari obyektə istinad edən istinad dəyişənidir.

Bunun PDF-ni Java-da super vs super yükləyin

Bu məqalənin PDF versiyasını yükləyə və sitat qeydinə əsasən onu oflayn məqsədlər üçün istifadə edə bilərsiniz. Zəhmət olmasa PDF versiyasını buradan endirin: Java-da bu ilə super arasındakı fərq

Tövsiyə: