تفاوت کلیدی – این در مقابل فوق العاده در جاوا
کلمات کلیدی "this" و "super" در برنامه نویسی جاوا استفاده می شود. این کلمات کلیدی را نمی توان به عنوان متغیر یا هر نام شناسه دیگری استفاده کرد. جاوا از برنامه نویسی شی گرا (OOP) پشتیبانی می کند. برنامه یا نرم افزار را می توان با استفاده از اشیاء مدلسازی کرد. اشیاء با استفاده از کلاس ها سیر نمی شوند. یکی از ارکان OOP ارث است. قابلیت استفاده مجدد کد را فراهم می کند. کلاس هایی که از قبل وجود دارند سوپرکلاس هستند و کلاس های مشتق شده زیر کلاس ها هستند. از کلمه کلیدی super می توان برای ارجاع یک شی از سوپرکلاس استفاده کرد. چندین شی در سیستم وجود دارد. کلمه کلیدی "this" برای ارجاع یک شی فعلی استفاده می شود.تفاوت کلیدی بین این و super این است که "this" یک متغیر مرجع است که برای ارجاع شی فعلی استفاده می شود در حالی که "super" یک متغیر مرجع است که برای ارجاع شیء فوق کلاس فوری استفاده می شود.
این در جاوا چیست؟
کلمه کلیدی "this" برای اشاره به یک شی فعلی استفاده می شود. به برنامه جاوای داده شده مراجعه کنید.
شکل 01: برنامه جاوا با استفاده از این کلمه کلیدی
در جاوا، سه نوع متغیر وجود دارد. آنها متغیرهای نمونه، متغیرهای محلی و متغیرهای کلاس هستند. طبق برنامه فوق، کلاس Employee دارای دو متغیر نمونه است. آنها شناسه و نام هستند. متغیرهای محلی متغیرهایی هستند که به روشها تعلق دارند. متغیرهای کلاس توسط همه اشیا به اشتراک گذاشته می شوند. شناسه و نام به سازنده Employee منتقل می شود. اگر برنامه نویس بنویسد id=id; متغیرهای نمونه را مقداردهی اولیه نمی کند زیرا سازنده قبلاً شناسه و نام دارد.هیچ مقداری برای مثال متغیرها وجود ندارد. بنابراین، چاپ آنها null نمایش داده می شود. هنگام استفاده از این، به شی فعلی اشاره می کند. بنابراین، دادن شناسه و نام به سازنده می تواند متغیرهای نمونه را تنظیم کند.
کلمه کلیدی "this" می تواند برای فراخوانی متد کلاس فعلی استفاده شود. به برنامه جاوای داده شده مراجعه کنید.
کلاس عمومی ThisDemo{
public static void main (string args){
Myclass myClass=جدید Myclass();
myClass. B();
}
}
class Myclass{
public void A(){
System.out.println("A");
}
public void B(){
System.out.prinltn("B");
this. A();
}
}
کلاس Myclass شامل دو روش است. آنها متد A و B هستند. هنگام ایجاد یک شی از Myclass و فراخوانی روش B، B، A را به عنوان خروجی چاپ می کند. در روش B، پس از چاپ B عبارتی به این صورت وجود دارد. با استفاده از این، متد کلاس فعلی فراخوانی شد.
همچنین می توان از این کلمه کلیدی برای فراخوانی سازنده کلاس فعلی استفاده کرد. به برنامه داده شده مراجعه کنید.
کلاس عمومی ThisDemo{
public static void main (string args){
A obj=جدید A(5);
}
}
کلاس A{
public A(){
System.out.println("Constructor A");
}
A عمومی (int x){
this();
System.out.println("Parameterized Constructor A");
}
}
طبق برنامه بالا، کلاس A یک سازنده پیش فرض و یک سازنده پارامتر دارد. هنگام ایجاد یک شی از A، سازنده پارامتری فراخوانی می شود. در سازنده پارامتری، عبارتی مانند این وجود دارد(); سازنده کلاس فعلی که A() است را فراخوانی می کند.
سوپر در جاوا چیست؟
کلمه کلیدی "super" مربوط به وراثت است. وراثت مفهوم اصلی برنامه نویسی شی گرا است. این اجازه می دهد تا از ویژگی ها و متدهای کلاس موجود در کلاس جدید استفاده کنید. کلاس موجود به عنوان کلاس والد یا سوپرکلاس شناخته می شود. کلاس جدید به عنوان کلاس فرزند یا زیر کلاس شناخته می شود.
"super" یک متغیر مرجع است که برای ارجاع شی کلاس والد فوری استفاده می شود. کلمه کلیدی super می تواند به متغیر نمونه کلاس والد فوری اشاره کند یا روش کلاس والد فوری را فراخوانی کند. از super() برای فراخوانی سازنده کلاس والد فوری استفاده می شود.
فرض کنید که دو کلاس به عنوان A و B وجود دارد. کلاس A ابر کلاس و کلاس B زیر کلاس است. کلاس A، B هر دو دارای روش نمایش هستند.
کلاس عمومی A{
Public void display(){
System.out.println("A");
}
}
کلاس عمومی B گسترش A{
Public void display(){
System.out.println("B");
}
}
هنگام ایجاد یک شی از نوع B و فراخوانی نمایش متد، خروجی B را می دهد. کلاس A دارای روش نمایش است، اما با روش نمایش زیر کلاس B لغو می شود. اگر برنامه نویس بخواهد متد نمایش را در کلاس A فراخوانی کند، می تواند از کلمه کلیدی super استفاده کند. به برنامه جاوای داده شده مراجعه کنید.
شکل 02: برنامه جاوا با استفاده از کلمه کلیدی فوق العاده
طبق برنامه فوق، کلاس A دارای یک متغیر به نام عدد با مقدار ۱۰ است. کلاس B، A را گسترش می دهد و دارای متغیری به نام عدد با مقدار ۲۰ است. عموماً هنگام ایجاد یک شی از نوع B و فراخوانی متد نمایش باید عددی را در زیر کلاس ارائه کند زیرا مقدار superclass توسط کلاس جدید لغو می شود.با استفاده از super.num، مقدار شماره superclass چاپ می شود.
سوپر() را می توان برای فراخوانی سازنده superclass استفاده کرد. به برنامه زیر مراجعه کنید.
کلاس عمومی اصلی {
public static void main (string args){
B obj=new B();
}
}
کلاس A{
A(){
System.out.println("A");
}
}
کلاس B گسترش A{
B(){
super();
System.out.println("B");
}
}
طبق برنامه فوق، کلاس A دارای سازنده A () است. کلاس B سازنده B () دارد. کلاس B کلاس A را گسترش می دهد. هنگام ایجاد یک شی از نوع B، A، B را به عنوان خروجی چاپ می کند. سازنده B () دارای () فوق العاده است. بنابراین ابتدا سازنده A فراخوانی می شود و سپس به B می رود.حتی اگر super () نوشته نشده باشد، به طور پیش فرض سازنده والد فراخوانی می شود.
فوق العاده با استفاده از روش به شرح زیر است.
شکل 03: برنامه جاوا که متد superclass را فراخوانی می کند
طبق برنامه فوق کلاس A دارای روش نمایش است. کلاس B نیز دارای روش نمایش است. کلاس B A را گسترش می دهد. هنگام ایجاد یک شی از نوع B و فراخوانی متد نمایش خروجی به صورت A و B ارائه می شود. در روش نمایش کلاس B، متد نمایش کلاس A با استفاده از super.display() فراخوانی می شود. این روش ابتدا "A" را چاپ می کند. سپس "B" را چاپ می کند.
شباهت بین این و فوق العاده چیست؟
هر دو کلیدواژه در برنامه نویسی جاوا هستند
تفاوت بین این و فوق العاده چیست؟
این در مقابل سوپر |
|
"this" یک متغیر مرجع است که برای ارجاع شی فعلی استفاده می شود. | "super" یک متغیر مرجع است که برای ارجاع یک شیء فوق کلاس فوری استفاده می شود. |
متغیر نمونه | |
یک متغیر نمونه کلاس فعلی را می توان با استفاده از این ارجاع داد. | متغیر نمونه Superclass را می توان با استفاده از super ارجاع داد. |
روش کلاس | |
روش کلاس فعلی را می توان با استفاده از این فراخوانی کرد. | روش Superclass را می توان با استفاده از super فراخوانی کرد. |
سازنده | |
سازنده کلاس فعلی را می توان با استفاده از این (). فراخوانی کرد | سازنده Superclass را می توان با استفاده از super(). فراخوانی کرد |
خلاصه – این در مقابل فوق العاده در جاوا
کلمات کلیدی "this" و "super" در جاوا استفاده می شود. کلمات کلیدی را نمی توان به عنوان متغیر یا هر نام شناسه دیگری استفاده کرد. به نظر می رسد که آنها یکی هستند، اما آنها یک تفاوت دارند. تفاوت بین این و super در این است که super یک متغیر مرجع است که برای ارجاع شی سوپرکلاس فوری استفاده می شود در حالی که این یک متغیر مرجع است که به شی فعلی اشاره می کند.
دانلود PDF این vs super در جاوا
می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت نقل قول برای اهداف آفلاین از آن استفاده کنید. لطفا نسخه PDF را از اینجا دانلود کنید: تفاوت بین این و فوق العاده در جاوا