Տարբերությունը Java-ում սրա և սուպերի միջև

Բովանդակություն:

Տարբերությունը Java-ում սրա և սուպերի միջև
Տարբերությունը Java-ում սրա և սուպերի միջև

Video: Տարբերությունը Java-ում սրա և սուպերի միջև

Video: Տարբերությունը Java-ում սրա և սուպերի միջև
Video: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов. 2024, Հուլիսի
Anonim

Հիմնական տարբերություն – սա ընդդեմ սուպերի Java-ում

«սա» և «սուպեր» հիմնաբառերն օգտագործվում են Java ծրագրավորման մեջ: Այս հիմնաբառերը չեն կարող օգտագործվել որպես փոփոխականներ կամ որևէ այլ նույնացուցիչ անուն: Java-ն աջակցում է Object Oriented Programming (OOP): Ծրագիրը կամ ծրագրաշարը կարելի է մոդելավորել օբյեկտների միջոցով: Օբյեկտները անհագ են՝ օգտագործելով դասերը: OOP-ի մեկ սյունը ժառանգությունն է: Այն ապահովում է կոդի կրկնակի օգտագործման հնարավորություն: Արդեն գոյություն ունեցող դասերը գերդասեր են, իսկ ստացված դասերը ենթադասեր են։ Սուպեր հիմնաբառը կարող է օգտագործվել գերդասարանի օբյեկտին հղում տալու համար: Համակարգում կան բազմաթիվ օբյեկտներ: «Այս» հիմնաբառը օգտագործվում է ընթացիկ օբյեկտը վերաբերելու համար:Այս և սուպերի միջև հիմնական տարբերությունն այն է, որ «սա» հղման փոփոխականն է, որն օգտագործվում է ընթացիկ օբյեկտը վերաբերելու համար, մինչդեռ «սուպերը» հղման փոփոխական է, որն օգտագործվում է անմիջական սուպերդասի օբյեկտին հղում կատարելու համար:

Ի՞նչ է սա Java-ում:

«սա» հիմնաբառը օգտագործվում է ընթացիկ օբյեկտը հիշատակելու համար: Հղում տրված Java ծրագրին։

Այս և սուպերի միջև տարբերությունը Java-ում
Այս և սուպերի միջև տարբերությունը Java-ում

Նկար 01. Java ծրագիր՝ օգտագործելով այս հիմնաբառը

Java-ում կան երեք տեսակի փոփոխականներ. Դրանք օրինակի փոփոխականներ են, տեղական փոփոխականներ և դասի փոփոխականներ: Համաձայն վերոնշյալ ծրագրի, դասի Employee-ն ունի երկու օրինակելի փոփոխական։ Նրանք id և անուն են: Տեղական փոփոխականները այն փոփոխականներն են, որոնք պատկանում են մեթոդներին: Դասի փոփոխականները համօգտագործվում են բոլոր օբյեկտների կողմից: ID-ն և անունը փոխանցվում են Employee կոնստրուկտորին: Եթե ծրագրավորողը գրում է id=id; այն չի նախաստորագրի օրինակի փոփոխականները, քանի որ Կոնստրուկտորն արդեն ունի ID և անուն:Չկան արժեքներ, օրինակ, փոփոխականներ: Այսպիսով, դրանք տպելը կցուցադրվի null: Սա օգտագործելիս այն վերաբերում է ընթացիկ օբյեկտին: Հետևաբար, կոնստրուկտորին id և անուն տալը կարող է սահմանել օրինակի փոփոխականները:

«սա» հիմնաբառը կարող է օգտագործվել ընթացիկ դասի մեթոդը կանչելու համար: Տե՛ս տվյալ java ծրագրին։

public class ThisDemo{

public static void main (String args){

Myclass myClass=նոր Myclass();

myClass. B();

}

}

դաս 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 տպելուց հետո կա հետևյալ արտահայտությունը. A(): Օգտագործելով սա՝ գործարկվել է ընթացիկ դասի մեթոդը։

Հնարավոր է նաև օգտագործել այս հիմնաբառը ընթացիկ դասի կոնստրուկտորը կանչելու համար: Հղում տրված ծրագրին։

public class ThisDemo{

public static void main (String args){

A obj=նոր A(5);

}

}

դաս A{

public A(){

System.out.println(«Կառուցիչ A»);

}

public A(int x){

this();

System.out.println(«Parameterized Constructor A»);

}

}

Ըստ վերը նշված ծրագրի՝ A դասը ունի լռելյայն կոնստրուկտոր և պարամետրացված կոնստրուկտոր։ A-ի օբյեկտ ստեղծելիս կանչվում է պարամետրացված կոնստրուկտորը։ Պարամետրացված կոնստրուկտորում կա այսպիսի հայտարարություն (); Այն կկանչի ընթացիկ դասի կոնստրուկտորը, որը A(). է

Ի՞նչ է սուպեր Java-ում:

«Սուպեր» հիմնաբառը կապված է ժառանգության հետ: Ժառանգությունը օբյեկտ կողմնորոշված ծրագրավորման հիմնական հասկացությունն է: Այն թույլ է տալիս օգտագործել արդեն գոյություն ունեցող դասի հատկությունները և մեթոդները նոր դասում: Արդեն գոյություն ունեցող դասը հայտնի է որպես մայր դաս կամ գերդաս: Նոր դասը հայտնի է որպես երեխայի դաս կամ ենթադաս:

«Սուպեր»-ը հղման փոփոխական է, որն օգտագործվում է անմիջական ծնող դասի օբյեկտին հղում տալու համար: Սուպեր հիմնաբառը կարող է վերաբերել անմիջական ծնող դասի օրինակի փոփոխականին կամ կանչել անմիջական ծնող դասի մեթոդը: 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 դասում, ապա նա կարող է օգտագործել սուպեր հիմնաբառը։ Հղում տրված Java ծրագրին։

Այս և սուպերի միջև տարբերությունը Java_Figure 02-ում
Այս և սուպերի միջև տարբերությունը Java_Figure 02-ում

Նկար 02. Java ծրագիր՝ օգտագործելով սուպեր հիմնաբառ

Ըստ վերոհիշյալ ծրագրի՝ A դասը ունի 10 արժեք ունեցող փոփոխական անունով համար: B դասը տարածում է A և ունի 20 արժեք ունեցող փոփոխական անունով համար: Ընդհանրապես, B տիպի օբյեկտ ստեղծելիս և ցուցադրման մեթոդը կանչելիս: պետք է տա ենթադասի համարը, քանի որ սուպերդասի արժեքը վերացվել է նոր դասի կողմից:Օգտագործելով super.num-ը, տպագրվում է գերդասարանի համարի արժեքը:

Սուպեր()-ը կարող է օգտագործվել գերդասերի կոնստրուկտորը կանչելու համար: Տե՛ս ստորև ներկայացված ծրագիրը։

public class Հիմնական {

public static void main (String args){

B obj=նոր B();

}

}

դաս A{

A(){

System.out.println(«A»);

}

}

դաս B ընդլայնվում է A{

B(){

սուպեր();

System.out.println(«B»);

}

}

Ըստ վերը նշված ծրագրի՝ A դասը ունի A կոնստրուկտոր (): B դասն ունի B կոնստրուկտոր (): B դասը ընդլայնում է A դասը: B տիպի օբյեկտ ստեղծելիս այն կտպագրի A, B որպես արդյունք: B () կոնստրուկտորն ունի սուպեր (): Հետևաբար, նախ կանչվում է A կոնստրուկտորը, այնուհետև գնում է B:Թեև super ()-ը գրված չէ, լռելյայնորեն կոչվում է մայր կառուցող:

Մեթոդը օգտագործող սուպերը հետևյալն է.

Հիմնական տարբերությունը Java-ում այս և սուպերի միջև
Հիմնական տարբերությունը Java-ում այս և սուպերի միջև

Նկար 03. Java ծրագիր, որը կանչում է գերդասակարգի մեթոդը

Ըստ վերը նշված ծրագրի՝ A դասը ունի ցուցադրման մեթոդ։ B դասը ունի նաև ցուցադրման մեթոդ: B դասը ընդլայնում է A-ն: B տիպի օբյեկտ ստեղծելիս և ցուցադրման մեթոդը կանչելիս արդյունքը կտրվի որպես A և B: B դասի ցուցադրման մեթոդում A դասի ցուցադրման մեթոդը կոչվում է օգտագործելով super.display(): Այդ մեթոդը նախ տպում է «A»: Այնուհետև տպում է «B»:

Ո՞րն է նմանությունը սրա և սուպերի միջև:

Երկուսն էլ հիմնաբառեր են Java ծրագրավորման մեջ:

Ո՞րն է տարբերությունը սրա և սուպերի միջև:

Սա ընդդեմ Super

«սա»-ը հղման փոփոխական է, որն օգտագործվում է ընթացիկ օբյեկտին հղում կատարելու համար: «Սուպեր»-ը հղման փոփոխական է, որն օգտագործվում է անմիջական սուպերդասի օբյեկտին վերաբերելու համար:
Օրինակի փոփոխական
Ընթացիկ դասի օրինակի փոփոխականը կարելի է ուղղել այս միջոցով: Սուպերդասի օրինակի փոփոխականը կարելի է ուղղել super-ի միջոցով:
Դասի մեթոդ
Ընթացիկ դասի մեթոդը կարելի է կանչել այս միջոցով: Superclass մեթոդը կարելի է կանչել՝ օգտագործելով super:
Կոնստրուկտոր
Ընթացիկ դասի կոնստրուկտորը կարելի է կանչել այս(). Սուպերդասի կոնստրուկտորը կարելի է կանչել՝ օգտագործելով super().

Ամփոփում – սա ընդդեմ սուպերի Java-ում

«սա» և «սուպեր» հիմնաբառերը օգտագործվում են Java-ում: Հիմնաբառերը չեն կարող օգտագործվել որպես փոփոխականներ կամ որևէ այլ նույնացուցիչ անուն: Նրանք կարծես նույնն են, բայց ունեն տարբերություն. Սրա և super-ի միջև տարբերությունն այն է, որ super-ը հղման փոփոխական է, որն օգտագործվում է անմիջական սուպերդասի օբյեկտը նշելու համար, մինչդեռ սա հղման փոփոխական է, որը վերաբերում է ընթացիկ օբյեկտին:

Ներբեռնեք այս vs super-ի PDF-ը Java-ով

Դուք կարող եք ներբեռնել այս հոդվածի PDF տարբերակը և օգտագործել այն անցանց նպատակներով՝ ըստ մեջբերումների: Խնդրում ենք ներբեռնել PDF տարբերակը այստեղ՝ այս և սուպերի միջև տարբերությունը Java-ում

Խորհուրդ ենք տալիս: