ძირითადი განსხვავება – ეს სუპერს ჯავაში
საკვანძო სიტყვები "ეს" და "სუპერ" გამოიყენება ჯავის პროგრამირებაში. ეს საკვანძო სიტყვები არ შეიძლება გამოყენებულ იქნას როგორც ცვლადები ან სხვა იდენტიფიკატორის სახელი. ჯავა მხარს უჭერს ობიექტზე ორიენტირებულ პროგრამირებას (OOP). პროგრამის ან პროგრამული უზრუნველყოფის მოდელირება შესაძლებელია ობიექტების გამოყენებით. ობიექტები დაუცველია კლასების გამოყენებით. OOP-ის ერთი საყრდენი არის მემკვიდრეობა. ის უზრუნველყოფს კოდის განმეორებით გამოყენებას. კლასები, რომლებიც უკვე არსებობს, არის სუპერკლასები, ხოლო მიღებული კლასები არის ქვეკლასები. სუპერ საკვანძო სიტყვა შეიძლება გამოყენებულ იქნას სუპერკლასის ობიექტის მითითებისთვის. სისტემაში მრავალი ობიექტია. "ეს" საკვანძო სიტყვა გამოიყენება მიმდინარე ობიექტის მითითებისთვის.ამ და სუპერს შორის მთავარი განსხვავება არის "ეს" არის საცნობარო ცვლადი, რომელიც გამოიყენება მიმდინარე ობიექტის მითითებისთვის, ხოლო "super" არის მითითების ცვლადი, რომელიც გამოიყენება უშუალო სუპერკლასის ობიექტის მითითებისთვის.
რა არის ეს ჯავაში?
საკვანძო სიტყვა "ეს" გამოიყენება მიმდინარე ობიექტის მითითებისთვის. იხილეთ მოცემული Java პროგრამა.
სურათი 01: Java პროგრამა ამ საკვანძო სიტყვის გამოყენებით
ჯავაში სამი ტიპის ცვლადია. ეს არის ინსტანციის ცვლადები, ლოკალური ცვლადები და კლასის ცვლადები. ზემოაღნიშნული პროგრამის მიხედვით, კლასს Employee აქვს ორი ინსტანციის ცვლადი. ისინი იდენტიფიკატორი და სახელია. ლოკალური ცვლადები არის ცვლადები, რომლებიც მიეკუთვნება მეთოდებს. კლასის ცვლადები იზიარებს ყველა ობიექტს. ID და სახელი გადაეცემა Employee კონსტრუქტორს. თუ პროგრამისტი წერს id=id; ის არ ახდენს ინსტანციის ცვლადების ინიციალიზაციას, რადგან კონსტრუქტორს უკვე აქვს ID და სახელი.არ არსებობს მნიშვნელობები, მაგალითად, ცვლადები. ასე რომ, მათი დაბეჭდვა გამოჩნდება null. ამის გამოყენებისას ის ეხება მიმდინარე ობიექტს. მაშასადამე, კონსტრუქტორისთვის ID-ის და სახელის მინიჭებამ შეიძლება დააყენოს ინსტანციის ცვლადები.
საკვანძო სიტყვა "ეს" შეიძლება გამოყენებულ იქნას მიმდინარე კლასის მეთოდის გამოსაძახებლად. იხილეთ მოცემული Java პროგრამა.
საჯარო კლასი ThisDemo{
საჯარო სტატიკური სიცარიელე მთავარი (სტრიქონი არგები){
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 დაბეჭდვის შემდეგ არის განცხადება, როგორც this. A(). ამის გამოყენებით გამოიძახეს მიმდინარე კლასის მეთოდი.
ასევე შესაძლებელია ამ საკვანძო სიტყვის გამოყენება მიმდინარე კლასის კონსტრუქტორის გამოსაძახებლად. მიმართეთ მოცემულ პროგრამას.
საჯარო კლასი ThisDemo{
საჯარო სტატიკური სიცარიელე მთავარი (სტრიქონი არგები){
A obj=ახალი A(5);
}
}
კლასი A{
საჯარო A(){
System.out.println("კონსტრუქტორი A");
}
საჯარო A(int x){
ეს();
System.out.println(„პარამეტრირებული კონსტრუქტორი A“);
}
}
ზემოხსენებული პროგრამის მიხედვით, A კლასს აქვს ნაგულისხმევი კონსტრუქტორი და პარამეტრირებული კონსტრუქტორი. A-ს ობიექტის შექმნისას პარამეტრიზებული კონსტრუქტორი გამოიძახება. პარამეტრიზებულ კონსტრუქტორში არის ასეთი განცხადება(); ის გამოიძახებს მიმდინარე კლასის კონსტრუქტორს, რომელიც არის A().
რა არის სუპერ ჯავაში?
საკვანძო სიტყვა "სუპერ" დაკავშირებულია მემკვიდრეობასთან. მემკვიდრეობა არის ობიექტზე ორიენტირებული პროგრამირების მთავარი კონცეფცია. ის საშუალებას გაძლევთ გამოიყენოთ უკვე არსებული კლასის თვისებები და მეთოდები ახალ კლასში. უკვე არსებული კლასი ცნობილია როგორც მშობელი კლასი ან სუპერკლასი. ახალი კლასი ცნობილია, როგორც ბავშვის კლასი ან ქვეკლასი.
„სუპერ“არის საცნობარო ცვლადი, რომელიც გამოიყენება უშუალო მშობლის კლასის ობიექტის მითითებისთვის. სუპერ საკვანძო სიტყვას შეუძლია მიუთითოს უშუალო მშობლის კლასის მაგალითის ცვლადი ან გამოიძახოს უშუალო მშობლის კლასის მეთოდი. სუპერ() გამოიყენება უშუალო მშობლის კლასის კონსტრუქტორის გამოსაძახებლად.
ვუშვათ, რომ არსებობს ორი კლასი, როგორც 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 პროგრამა.
სურათი 02: Java პროგრამა სუპერ საკვანძო სიტყვის გამოყენებით
ზემოხსენებული პროგრამის მიხედვით, A კლასს აქვს ცვლადი სახელად რიცხვი მნიშვნელობით 10. B კლასი ვრცელდება A და აქვს ცვლადის სახელად ნომერი 20 მნიშვნელობით. ზოგადად, B ტიპის ობიექტის შექმნისას და ჩვენების მეთოდის გამოძახებისას. უნდა მისცეს რიცხვი ქვეკლასში, რადგან სუპერკლასის მნიშვნელობა გადაფარებულია ახალი კლასის მიერ.super.num-ის გამოყენებით იბეჭდება სუპერკლასის ნომრის მნიშვნელობა.
სუპერ() შეიძლება გამოყენებულ იქნას სუპერკლასის კონსტრუქტორის გამოსაძახებლად. იხილეთ ქვემოთ მოცემული პროგრამა.
საჯარო კლასი მთავარი {
საჯარო სტატიკური სიცარიელე მთავარი (სტრიქონი არგები){
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 () არ არის დაწერილი, ნაგულისხმევად იწოდება მშობელი კონსტრუქტორი.
სუპერ მეთოდის გამოყენებით შემდეგია.
სურათი 03: Java პროგრამა, რომელიც იწვევს სუპერკლასის მეთოდს
ზემოხსენებული პროგრამის მიხედვით, A კლასს აქვს ჩვენების მეთოდი. B კლასს ასევე აქვს ჩვენების მეთოდი. B კლასი აფართოებს A. B ტიპის ობიექტის შექმნისას და ჩვენების მეთოდის გამოძახებისას გამომავალი იქნება A და B. B კლასის ჩვენების მეთოდში A კლასის ჩვენების მეთოდი გამოიძახება super.display(). ეს მეთოდი პირველ რიგში იბეჭდება "A". შემდეგ იბეჭდება "B".
რა მსგავსებაა ამ და სუპერს შორის?
ორივე საკვანძო სიტყვაა Java პროგრამირებაში
რა განსხვავებაა ამ და სუპერს შორის?
ეს vs სუპერ |
|
„ეს“არის მიმართვის ცვლადი, რომელიც გამოიყენება მიმდინარე ობიექტის მითითებისთვის. | „სუპერ“არის მიმართვის ცვლადი, რომელიც გამოიყენება უშუალო სუპერკლასის ობიექტის მითითებისთვის. |
მაგალითის ცვლადი | |
ამჟამინდელი კლასის მაგალითის ცვლადის მითითება შესაძლებელია ამის გამოყენებით. | სუპერკლასის ეგზემპლარის ცვლადის მითითება შესაძლებელია super-ის გამოყენებით. |
კლასის მეთოდი | |
ამჟამინდელი კლასის მეთოდის გამოძახება შესაძლებელია ამის გამოყენებით. | სუპერკლასის მეთოდის გამოძახება შესაძლებელია სუპერის გამოყენებით. |
კონსტრუქტორი | |
მიმდინარე კლასის კონსტრუქტორის გამოძახება შესაძლებელია ამ(). | სუპერკლასის კონსტრუქტორის გამოძახება შესაძლებელია super(). |
შეჯამება – ეს სუპერს ჯავაში
საკვანძო სიტყვები "ეს" და "სუპერ" გამოიყენება ჯავაში. საკვანძო სიტყვები არ შეიძლება გამოყენებულ იქნას როგორც ცვლადები ან სხვა იდენტიფიკატორი. როგორც ჩანს, ისინი ერთნაირია, მაგრამ მათ აქვთ განსხვავება. განსხვავება ამ და super-ს შორის არის ის, რომ super არის საცნობარო ცვლადი, რომელიც გამოიყენება უშუალო სუპერკლასის ობიექტის მითითებისთვის, ხოლო ეს არის მითითების ცვლადი, რომელიც ეხება მიმდინარე ობიექტს.
ჩამოტვირთეთ ამ vs super-ის PDF ფორმატში Java
შეგიძლიათ ჩამოტვირთოთ ამ სტატიის PDF ვერსია და გამოიყენოთ იგი ოფლაინ მიზნებისთვის ციტირების შენიშვნის მიხედვით. გთხოვთ გადმოწეროთ PDF ვერსია აქ: სხვაობა ამ და სუპერს შორის Java