Энэ болон Java дээрх супер хоёрын ялгаа

Агуулгын хүснэгт:

Энэ болон Java дээрх супер хоёрын ялгаа
Энэ болон Java дээрх супер хоёрын ялгаа

Видео: Энэ болон Java дээрх супер хоёрын ялгаа

Видео: Энэ болон Java дээрх супер хоёрын ялгаа
Видео: C sharp, Java, Javascript, Python - ижил тал, 4н програмчлалын хэл 2024, Арваннэгдүгээр
Anonim

Үндсэн ялгаа – энэ нь Java дээрх супер болон супер

“This” болон “super” гэсэн түлхүүр үгсийг Java програмчлалд ашигладаг. Эдгээр түлхүүр үгсийг хувьсагч эсвэл өөр танигч нэр болгон ашиглах боломжгүй. Java нь Объект хандалтат програмчлалыг (OOP) дэмждэг. Програм эсвэл програм хангамжийг объект ашиглан загварчилж болно. Ангиудыг ашиглан объектууд ханасан байна. OOP-ийн нэг багана нь өв залгамжлал юм. Энэ нь кодыг дахин ашиглах боломжийг олгодог. Аль хэдийн байгаа ангиуд нь супер анги, үүссэн ангиуд нь дэд анги юм. Супер түлхүүр үгийг супер ангийн объектыг дурдахдаа ашиглаж болно. Системд олон объект байдаг. 'This' түлхүүр үгийг одоогийн объектыг заахад ашигладаг. Энэ болон супер хоёрын гол ялгаа нь 'энэ' нь одоогийн объектыг заахад хэрэглэгддэг лавлагаа хувьсагч бөгөөд 'super' нь шууд дээд зэрэглэлийн объектод хамаарах лавлагаа хувьсагч юм.

Энэ Java хэл дээр юу вэ?

'This' гэсэн түлхүүр үгийг одоогийн объектыг заахад ашигладаг. Өгөгдсөн Java програмыг үзнэ үү.

Java дээрх супер ба энэ хоёрын ялгаа
Java дээрх супер ба энэ хоёрын ялгаа

Зураг 01: Энэ түлхүүр үгийг ашигласан Java програм

Java хэл дээр гурван төрлийн хувьсагч байдаг. Эдгээр нь жишээ хувьсагч, локал хувьсагч, ангийн хувьсагч юм. Дээрх хөтөлбөрийн дагуу Ажилтан анги нь хоёр хувьсагчтай. Тэдгээр нь id болон нэр юм. Локал хувьсагч нь аргуудад хамаарах хувьсагч юм. Ангийн хувьсагчдыг бүх объект хуваалцдаг. ID болон нэрийг Ажилтан бүтээгчид дамжуулна. Хэрэв программист id=id гэж бичвэл; Энэ нь констракторт аль хэдийн id болон нэртэй байгаа тул хувьсагчдыг эхлүүлэхгүй. Жишээ хувьсагчийн утга байхгүй. Тиймээс тэдгээрийг хэвлэх нь хоосон харагдах болно. Үүнийг ашиглах үед энэ нь одоогийн объектыг хэлнэ. Тиймээс бүтээгчид id болон нэрийг өгснөөр жишээний хувьсагчийг тохируулж болно.

“This” гэсэн түлхүүр үгийг одоогийн ангийн аргыг дуудах боломжтой. Өгөгдсөн java програмыг үзнэ үү.

нийтийн анги Энэ Демо{

нийтийн статик хүчингүй үндсэн(Мөр арг){

Myclass myClass=new Myclass();

миний анги. B();

}

}

анги миний анги{

нийтийн хүчингүй A(){

System.out.println("A");

}

нийтийн хүчингүй B(){

System.out.prinltn("B");

this. A();

}

}

Myclass анги нь хоёр аргыг агуулдаг. Эдгээр нь А ба В арга юм. Myclass-ын объект үүсгэж, В аргыг дуудах үед гаралт болгон B, A хэвлэнэ. В аргын хувьд B хэвлэсний дараа ийм мэдэгдэл байна. A(). Үүнийг ашиглан одоогийн ангийн аргыг ашигласан.

Мөн энэ түлхүүр үгээр одоогийн анги үүсгэгчийг дуудах боломжтой. Өгөгдсөн хөтөлбөрийг үзнэ үү.

нийтийн анги Энэ Демо{

нийтийн статик хүчингүй үндсэн(Мөр арг){

A obj=шинэ A(5);

}

}

ангилал{

нийтийн А(){

System.out.println("Бүтээгч А");

}

нийтийн A(int x){

энэ();

System.out.println(“Параметржүүлсэн бүтээгч А”);

}

}

Дээрх программын дагуу А ангилал нь анхдагч бүтээгч ба параметржүүлсэн байгуулагчтай. А объектыг үүсгэх үед параметржүүлсэн байгуулагчийг дуудна. Параметржүүлсэн бүтээгч дээр ийм мэдэгдэл байдаг(); Энэ нь одоогийн A(). ангиллын үүсгэгчийг дуудах болно.

Java-д супер гэж юу вэ?

‘Super’ гэсэн түлхүүр үг нь удамшилтай холбоотой. Өв залгамжлал нь объект хандалтат програмчлалын гол ойлголт юм. Энэ нь аль хэдийн байгаа ангийн шинж чанар, аргуудыг шинэ ангид ашиглах боломжийг олгодог. Аль хэдийн байгаа анги нь эх анги эсвэл супер анги гэж нэрлэгддэг. Шинэ ангийг хүүхдийн анги эсвэл дэд анги гэж нэрлэдэг.

'Super' нь шууд эх ангийн объектыг лавлахад хэрэглэгддэг лавлагаа хувьсагч юм. Супер түлхүүр үг нь шууд эцэг эх ангийн хувьсагч эсвэл шууд эх ангийн аргыг дуудаж болно. super() нь шууд эцэг эхийн анги үүсгэгчийг дууддаг.

А ба В гэсэн хоёр анги байна гэж бодъё. А анги нь дээд анги, В анги нь дэд анги юм. А, В ангилал хоёулаа харуулах аргатай.

нийтийн А анги{

нийтийн хүчингүй дэлгэц(){

System.out.println("A");

}

}

нийтийн В анги A-г сунгаж байна{

нийтийн хүчингүй дэлгэц(){

System.out.println("B");

}

}

В төрлийн объект үүсгэж, аргын дэлгэцийг дуудах үед энэ нь В гаралтыг өгөх болно. А анги нь дэлгэцийн аргатай боловч В дэд ангиллын дэлгэцийн аргаар дарж бичдэг. Хэрэв програмист А ангиллын дэлгэцийн аргыг дуудахыг хүсвэл супер түлхүүр үгийг ашиглаж болно. Өгөгдсөн Java програмыг үзнэ үү.

Java_Зураг 02 дээрх супер ба энэ хоёрын ялгаа
Java_Зураг 02 дээрх супер ба энэ хоёрын ялгаа

Зураг 02: Супер түлхүүр үг ашигласан Java програм

Дээрх программын дагуу А ангилал нь 10 утгатай дугаар нэртэй хувьсагчтай. В ангилал нь А-г өргөтгөж, 20 утгатай нэртэй хувьсагчтай байдаг. Ерөнхийдөө В төрлийн объект үүсгэж харуулах аргыг дуудахдаа. дэд ангид дугаарыг өгөх ёстой, учир нь супер ангийн утгыг шинэ ангид дарсан байна. Super.num ашигласнаар дээд ангийн дугаарыг хэвлэнэ.

Super()-г ашиглан супер ангийн бүтээгчийг дуудаж болно. Доорх хөтөлбөрийг үзнэ үү.

нийтийн анги Үндсэн {

нийтийн статик хүчингүй үндсэн(Мөр арг){

B obj=шинэ B();

}

}

ангилал{

A(){

System.out.println("A");

}

}

B анги A{

B(){

super();

System.out.println("B");

}

}

Дээрх программын дагуу А анги нь А () байгуулагчтай. B ангилалд B () бүтээгч байдаг. В анги нь А ангиллыг өргөтгөдөг. В төрлийн объект үүсгэх үед энэ нь A, B гаралт болгон хэвлэнэ. B () бүтээгч нь super ()-тэй. Тиймээс эхлээд А бүтээгчийг дуудаж, дараа нь B руу очно. Хэдийгээр super () бичигдээгүй ч анхдагчаар эх үүсгэгчийг дууддаг.

Энэ аргыг ашигласан супер нь дараах байдалтай байна.

Java дээрх супер хоёрын гол ялгаа
Java дээрх супер хоёрын гол ялгаа

Зураг 03: Супер ангийн аргыг ашигладаг Java програм

Дээрх программын дагуу А анги дэлгэцийн аргатай. B ангилалд мөн харуулах арга байдаг. B ангиллыг A өргөтгөдөг. В төрлийн объект үүсгэх үед дэлгэцийн аргыг дуудах үед А ба В байдлаар гаралт гарна. В ангиллын дэлгэцийн аргад А ангиллын дэлгэцийн аргыг super.display() ашиглан дууддаг. Энэ арга нь эхлээд "А"-г хэвлэдэг. Дараа нь "B" гэж хэвлэнэ.

Энэ болон супер хоёрын хооронд ямар төстэй зүйл байдаг вэ?

Хоёулаа Java програмчлалын түлхүүр үг

Энэ болон супер хоёрын ялгаа юу вэ?

Энэ vs Super

‘This’ нь одоогийн объектод хамаарах лавлагааны хувьсагч юм. 'Super' нь шууд дээд зэрэглэлийн объектыг заахад хэрэглэгддэг лавлагаа хувьсагч юм.
Жишээ хувьсагч
Үүнийг ашиглан одоогийн ангийн хувьсагчийг дурдаж болно. Супер ангийн хувьсагчийг super ашиглан дурдаж болно.
Ангийн арга
Үүнийг ашиглан одоогийн ангийн аргыг дуудаж болно. Superclass аргыг super ашиглан ашиглаж болно.
Бүтээгч
Одоогийн анги үүсгэгчийг this() ашиглан дуудаж болно. Superclass байгуулагчийг super() ашиглан дуудаж болно.

Хураангуй – энэ нь Java хэл дээрх супер ба

“This” болон “super” гэсэн түлхүүр үгсийг Java хэл дээр ашигладаг. Түлхүүр үгсийг хувьсагч эсвэл өөр танигч нэр болгон ашиглах боломжгүй. Тэд адилхан юм шиг боловч ялгаатай байдаг. Энэ ба super хоёрын ялгаа нь super нь одоогийн объектыг заадаг лавлагаа хувьсагч бөгөөд супер ангиллын шууд объектыг заахад хэрэглэгддэг лавлагаа хувьсагч юм.

Энэ vs super-ийн PDF-г Java хэлээр татаж авах

Та энэ нийтлэлийн PDF хувилбарыг татаж аваад офлайн зорилгоор ашиглах боломжтой. PDF хувилбарыг эндээс татаж авна уу: Java дээрх супер болон супер хоёрын ялгаа

Зөвлөмж болгож буй: