Осы мен Java тіліндегі супер арасындағы айырмашылық

Мазмұны:

Осы мен Java тіліндегі супер арасындағы айырмашылық
Осы мен Java тіліндегі супер арасындағы айырмашылық

Бейне: Осы мен Java тіліндегі супер арасындағы айырмашылық

Бейне: Осы мен Java тіліндегі супер арасындағы айырмашылық
Бейне: Фирма шығындары Анық және анық емес шығындар Пайда түрлері 2024, Шілде
Anonim

Негізгі айырмашылық – бұл Java тіліндегі суперге қарсы

«This» және «super» кілт сөздері Java бағдарламалауда қолданылады. Бұл кілт сөздерді айнымалылар немесе кез келген басқа идентификатор атауы ретінде пайдалануға болмайды. Java нысанға бағытталған бағдарламалауды (OOP) қолдайды. Бағдарламаны немесе бағдарламалық құралды нысандарды пайдаланып модельдеуге болады. Нысандар сыныптарды пайдалана отырып қаныққан. OOP бір тірегі - мұрагерлік. Ол кодты қайта пайдалануға мүмкіндік береді. Бұрыннан бар сыныптар суперсыныптар, ал туынды сыныптар ішкі сыныптар болып табылады. Super кілт сөзін суперкласс объектісіне сілтеме жасау үшін пайдалануға болады. Жүйеде бірнеше нысандар бар. «This» кілт сөзі ағымдағы нысанға сілтеме жасау үшін пайдаланылады. Осы мен super арасындағы негізгі айырмашылық мынада: 'бұл' ағымдағы нысанға сілтеме жасау үшін пайдаланылатын анықтамалық айнымалы, ал 'super' тікелей суперкласс нысанына сілтеме жасау үшін пайдаланылатын анықтамалық айнымалы.

Бұл Java тілінде не?

«Бұл» кілт сөзі ағымдағы нысанға сілтеме жасау үшін пайдаланылады. Берілген Java бағдарламасын қараңыз.

Java тіліндегі бұл және супер арасындағы айырмашылық
Java тіліндегі бұл және супер арасындағы айырмашылық

01-сурет: осы кілт сөзді пайдаланатын Java бағдарламасы

Java тілінде айнымалылардың үш түрі бар. Олар даналық айнымалылар, жергілікті айнымалылар және класс айнымалылары. Жоғарыда көрсетілген бағдарламаға сәйкес, сынып қызметкерінің екі айнымалы айнымалысы бар. Олар идентификатор және атау. Жергілікті айнымалылар - әдістерге жататын айнымалылар. Класс айнымалылары барлық нысандармен ортақ пайдаланылады. Идентификатор мен атау Employee конструкторына беріледі. Егер бағдарламашы id=id жазса; ол дананың айнымалы мәндерін инициализацияламайды, себебі Конструкторда идентификатор мен атау әлдеқашан бар. Мысал айнымалылары үшін мәндер жоқ. Осылайша, оларды басып шығару нөлді көрсетеді. Мұны пайдаланған кезде ол ағымдағы нысанға сілтеме жасайды. Сондықтан конструкторға идентификатор мен атау беру дананың айнымалы мәндерін орнатуы мүмкін.

«Бұл» кілт сөзін ағымдағы сынып әдісін шақыру үшін пайдалануға болады. Берілген java бағдарламасын қараңыз.

қоғамдық сынып Бұл демонстрация{

public static void main(String args){

Менің сыныбым=жаңа Myclass();

менің сыныбым. B();

}

}

сынып Myclass{

қоғамдық жарамсыз A(){

System.out.println("A");

}

қоғамдық жарамсыз B(){

System.out.prinltn("B");

this. A();

}

}

Myclass сыныбы екі әдісті қамтиды. Олар А және В әдістері. Myclass объектісін құру және В әдісін шақыру кезінде B, A шығыс ретінде басып шығарылады. В әдісінде B басып шығарғаннан кейін this. A() сияқты мәлімдеме бар. Осы арқылы ағымдағы сынып әдісі шақырылды.

Бұл кілт сөзді ағымдағы класс конструкторын шақыру үшін де пайдалануға болады. Берілген бағдарламаны қараңыз.

қоғамдық сынып Бұл демонстрация{

public static void main(String args){

A нысан=жаңа A(5);

}

}

А сыныбы{

қоғамдық A(){

System.out.println («А конструкторы»);

}

қоғамдық A(int x){

this();

System.out.println («Параметрленген конструктор A»);

}

}

Жоғарыда аталған бағдарламаға сәйкес, А класында әдепкі конструктор және параметрленген конструктор бар. А объектісін құру кезінде параметрленген конструктор шақырылады. Параметрленген конструкторда мынандай мәлімдеме бар(); Ол ағымдағы класс конструкторын шақырады, яғни A().

Java тіліндегі супер деген не?

‘Super’ кілт сөзі мұраға қатысты. Мұрагерлік объектіге бағытталған бағдарламалаудың негізгі тұжырымдамасы болып табылады. Ол бұрыннан бар сыныптың қасиеттері мен әдістерін жаңа сыныпқа пайдалануға мүмкіндік береді. Бұрыннан бар сынып ата-аналық немесе суперкласс ретінде белгілі. Жаңа сынып еншілес сынып немесе ішкі сынып ретінде белгілі.

«Super» - бұл тікелей ата-аналық сынып нысанына сілтеме жасау үшін пайдаланылатын анықтамалық айнымалы. Super кілт сөзі бірден ата-аналық сынып данасы айнымалысына сілтеме жасай алады немесе дереу ата-аналық сынып әдісін шақыра алады. super() бірден ата-аналық сынып конструкторын шақыру үшін пайдаланылады.

А және В сияқты екі сынып бар деп есептейік. А класы суперсынып, ал В сыныбы ішкі сынып. A және B сыныптарының екеуінде де көрсету әдісі бар.

қоғамдық сынып A{

жалпыға қолжетімді дисплей(){

System.out.println("A");

}

}

қоғамдық В класы A-ны кеңейтеді{

жалпыға қолжетімді дисплей(){

System.out.println("B");

}

}

В типті нысанды жасағанда және дисплей әдісін шақырғанда, ол В шығысын береді. А сыныбында көрсету әдісі бар, бірақ ол В қосалқы сыныбының көрсету әдісімен қайта анықталады. Егер бағдарламашы А класындағы дисплей әдісін шақырғысы келсе, онда ол super кілт сөзін қолдана алады. Берілген Java бағдарламасын қараңыз.

Java_Figure 02-дегі бұл және супер арасындағы айырмашылық
Java_Figure 02-дегі бұл және супер арасындағы айырмашылық

02-сурет: супер кілтсөзді пайдаланатын Java бағдарламасы

Жоғарыдағы бағдарламаға сәйкес, А сыныбында 10 мәні бар айнымалы деп аталатын сан бар. В сыныбында А ауқымын кеңейтеді және 20 мәні бар айнымалы атаулы сан бар. Әдетте, B түріндегі нысанды жасау және көрсету әдісін шақыру кезінде ішкі сыныптағы нөмірді беруі керек, себебі суперкласс мәні жаңа сыныппен қайта анықталған.super.num пайдалану арқылы суперкласс санының мәні басып шығарылады.

Super() функциясын суперкласс конструкторын шақыру үшін пайдалануға болады. Төмендегі бағдарламаны қараңыз.

қоғамдық сынып Негізгі {

public static void main(String args){

B нысан=жаңа B();

}

}

А сыныбы{

A(){

System.out.println("A");

}

}

В сыныбы A кеңейтіледі{

B(){

super();

System.out.println("B");

}

}

Жоғарыда көрсетілген бағдарламаға сәйкес А класында A () конструкторы бар. В класында B () конструкторы бар. В класы А класын кеңейтеді. В типті нысанды жасағанда, ол A, B шығыс ретінде басып шығарады. B () конструкторында super () бар. Сондықтан алдымен A конструкторы шақырылады, содан кейін В-ге өтеді.super () жазылмаса да, әдепкі бойынша ата-аналық конструктор шақырылады.

Әдісті пайдаланатын супер келесідей.

Java тіліндегі бұл және супер арасындағы негізгі айырмашылық
Java тіліндегі бұл және супер арасындағы негізгі айырмашылық

03-сурет: суперкласс әдісін шақыратын Java бағдарламасы

Жоғарыдағы бағдарламаға сәйкес, А сыныбында көрсету әдісі бар. В сыныбында көрсету әдісі де бар. B класы А кеңейтеді. B түріндегі нысанды жасағанда және көрсету әдісін шақырғанда, А және В түрінде нәтиже береді. B класындағы көрсету әдісінде А класының көрсету әдісі super.display() арқылы шақырылады. Бұл әдіс алдымен «А» басып шығарады. Содан кейін "B" басып шығарады.

Осы мен супердің қандай ұқсастығы бар?

Екеуі де Java бағдарламалауындағы кілт сөздер

Осы мен супердің айырмашылығы неде?

Бұл Суперге қарсы

«Бұл» ағымдағы нысанға сілтеме жасау үшін пайдаланылатын анықтамалық айнымалы болып табылады. «Super» - бұл бірден суперкласс нысанына сілтеме жасау үшін пайдаланылатын анықтамалық айнымалы.
Дана айнымалысы
Ағымдағы класс данасы айнымалысына осыны пайдаланып сілтеме жасауға болады. Суперкласс данасы айнымалысына super арқылы сілтеме жасауға болады.
Сынып әдісі
Ағымдағы сынып әдісін осы арқылы шақыруға болады. Superclass әдісін super арқылы шақыруға болады.
Конструктор
Ағымдағы класс конструкторын this() арқылы шақыруға болады. Superclass конструкторын super() арқылы шақыруға болады.

Қорытынды – бұл Java тіліндегі суперге қарсы

«This» және «super» кілт сөздері Java тілінде қолданылады. Түйінді сөздерді айнымалылар немесе кез келген басқа идентификатор атауы ретінде пайдалануға болмайды. Олар бірдей сияқты, бірақ олардың айырмашылығы бар. Мұның super және super арасындағы айырмашылығы мынада: super - бұл ағымдық нысанға сілтеме жасайтын анықтамалық айнымалы болса, супер класс объектісіне сілтеме жасау үшін пайдаланылатын сілтеме айнымалысы.

Осының PDF нұсқасын Java тілінде жүктеп алыңыз

Сіз осы мақаланың PDF нұсқасын жүктеп алып, сілтеме жазбасына сәйкес офлайн мақсаттарда пайдалана аласыз. PDF нұсқасын мына жерден жүктеп алыңыз: Java тіліндегі бұл және супер арасындағы айырмашылық

Ұсынылған: