ძირითადი განსხვავება – კლასი და ინტერფეისი
ობიექტზე ორიენტირებული პროგრამირება (OOP) არის საერთო პარადიგმა პროგრამული უზრუნველყოფის შემუშავებაში. ეს ხელს უწყობს რეალური სამყაროს სცენარების პროგრამირებას კლასებისა და ობიექტების გამოყენებით. კლასი არის ობიექტის შექმნის გეგმა. პროგრამისტს შეუძლია შექმნას კლასი თვისებებითა და მეთოდებით. მოსწავლე და მასწავლებელი საგნებია. ობიექტის შექმნა ცნობილია როგორც ინსტანცია. OOP ასევე იყენებს ინტერფეისებს. ინტერფეისები და კლასი შეიძლება ჩანდეს მსგავსი, მაგრამ მათ აქვთ განსხვავება. ეს სტატია განიხილავს განსხვავებას კლასსა და ინტერფეისს შორის. კლასსა და ინტერფეისს შორის მთავარი განსხვავება ისაა, რომ კლასი არის საცნობარო ტიპი, რომელიც არის ობიექტის ინსტალაციის გეგმა, ხოლო ინტერფეისი არის საცნობარო ტიპი, რომელიც არ შეიძლება გამოყენებულ იქნას ობიექტის ინსტალაციისთვის.
რა არის კლასი?
OOP-ში ყველაფერი განიხილება როგორც ობიექტი. შეუძლებელია ობიექტის შექმნა კლასის გარეშე. კლასი არის ობიექტის შექმნის გეგმა. სახლის აშენებისას არქიტექტორი გეგმავს. გეგმა კლასს ჰგავს. სახლი ობიექტს ჰგავს. კლასი არის ობიექტის აგების გეგმა. ობიექტი არის ის, რაც იქმნება კლასის გამოყენებით.
კლასი შეიცავს თვისებებს და მეთოდებს. სტუდენტს შეიძლება ჰქონდეს ისეთი თვისებები, როგორიცაა სახელი, კლასი, ინდექსის ნომერი. მოსწავლეს შეიძლება ჰქონდეს ისეთი მეთოდები, როგორიცაა კითხვა, სიარული, სწავლა. იქმნება კლასი საჭირო თვისებებითა და მეთოდებით.
კლასის შექმნის სინტაქსი მრავალ პროგრამირების ენაზე ასეთია. იგი შექმნილია საკვანძო სიტყვის კლასის გამოყენებით.
კლასის კლასის_სახელი {
// თვისებები
//მეთოდები
}
პროგრამირების ენები, როგორიცაა C და Java, მიჰყვება მსგავს სინტაქსს კლასის გამოყენებით ობიექტის შესაქმნელად. დავუშვათ, რომ კლასის სახელია Student.
სტუდენტი s1=ახალი სტუდენტი ();
ეს s1 არის ობიექტი. "ახალი" საკვანძო სიტყვა გამოიყენება თვისებებისთვის მეხსიერების გამოსაყოფად. კლასს ასევე აქვს კონსტრუქტორი თვისებების ან ცვლადების ინიციალიზაციისთვის.
კლასის წევრებს, როგორიცაა თვისებები და მეთოდები, აქვთ წვდომის მოდიფიკატორები. წვდომის სპეციფიკატორები აღწერენ ამ წევრების ხელმისაწვდომობას და ხილვადობას სხვა კლასებში. კლასის წევრებს შეუძლიათ ჰქონდეთ წვდომა სპეციფიკაციები, როგორიცაა საჯარო, კერძო და დაცული. საზოგადოების წევრები ხელმისაწვდომია სხვა კლასებისთვის. კერძო წევრები ხელმისაწვდომია მხოლოდ კლასისთვის. დაცული წევრები ხელმისაწვდომია კლასში და შესაბამის ქვეკლასებში.
რა არის ინტერფეისი?
აბსტრაქცია არის ობიექტზე ორიენტირებული პროგრამირების საყრდენი. ეს არის განხორციელების დეტალების დამალვა და მომხმარებლისთვის ფუნქციონირების ჩვენება. აბსტრაქცია მიიღწევა აბსტრაქტული კლასებისა და ინტერფეისების გამოყენებით. აბსტრაქტულ მეთოდს არ აქვს განხორციელება. კლასს, რომელიც შეიცავს მინიმუმ ერთ აბსტრაქტულ მეთოდს, ეწოდება აბსტრაქტული კლასი.
როცა ორი აბსტრაქტული კლასია, ამ კლასებში გამოცხადებული მეთოდები უნდა განხორციელდეს. ამ მეთოდების განსახორციელებლად გამოიყენება ახალი კლასი. თუ ორივე კლასს ჰქონდა ერთი და იგივე მეთოდი, შეიძლება გამოიწვიოს გაურკვევლობის პრობლემა. ამიტომ, პროგრამირების ენებს, როგორიცაა Java და C, აქვთ ინტერფეისი.
ინტერფეისები შეიცავს მხოლოდ მეთოდების დეკლარაციას. განხორციელების მეთოდი არ არსებობს. ასევე, ინტერფეისები არ შეიძლება გამოყენებულ იქნას ობიექტების შესაქმნელად. ისინი გამოიყენება მრავალი მემკვიდრეობის მხარდასაჭერად და კოდის დასაცავად.
ინტერფეისის სინტაქსი ასეთია. ინტერფეისი გამოიყენეთ საკვანძო სიტყვა "ინტერფეისი".
ინტერფეისის ინტერფეისის_სახელი{
ტიპი მეთოდი1(პარამეტრების_სიტი);
ტიპი მეთოდი2 (პარამეტრების_სიტი);
}
ზემოხსენებულის მიხედვით, ინტერფეისებს აქვთ მხოლოდ დეკლარაცია. არ არსებობს განმარტება. ასე რომ, ინტერფეისებს არ შეუძლიათ ობიექტების ინსტალაცია. ის მხოლოდ აბსტრაქტულ ხედვას იძლევა იმის შესახებ, თუ რა არის ინტერფეისი.ინტერფეისში გამოცხადებული მეთოდები შეიძლება განხორციელდეს ერთი ან მრავალი კლასის მიერ. კლასი იყენებს საკვანძო სიტყვას „დანერგვა“ინტერფეისის განსახორციელებლად. იხილეთ Java-ს გამოყენებით დაწერილი მაგალითი.
სურათი 01: პროგრამა ინტერფეისების გამოყენებით
ზემოხსენებული პროგრამის მიხედვით, A და B არის ინტერფეისები. A ინტერფეისს აქვს მეთოდის დეკლარაცია, რომელიც არის sum(). B ინტერფეისს აქვს მეთოდის გამოცხადების sub(). კლასი C ახორციელებს ორივე ინტერფეისს, რომლებიც არის A და B. ამიტომ, კლასი C განსაზღვრავს ორივე sum() და sub() მეთოდებს. C ტიპის ობიექტის შექმნის შემდეგ შესაძლებელია ორივე მეთოდის გამოძახება sum() და sub()..
ინტერფეისის შიგნით გამოცხადებული მეთოდები ყოველთვის საჯარო უნდა იყოს, რადგან განმახორციელებელი კლასები განსაზღვრავენ მათ. ინტერფეისს ასევე შეუძლია სხვა ინტერფეისის მემკვიდრეობა.
რა მსგავსებაა კლასსა და ინტერფეისს შორის?
- ორივე მიმართვის ტიპია.
- ორივე ეხება ობიექტზე ორიენტირებულ პროგრამირებას.
რა განსხვავებაა კლასსა და ინტერფეისს შორის?
კლასი ინტერფეისის წინააღმდეგ |
|
კლასი არის მიმართვის ტიპი, რომელიც არის ობიექტის შექმნის გეგმა. | ინტერფეისი არის მითითების ტიპი, რომლის ინსტალაციაც შეუძლებელია. |
ობიექტის ინსტალაცია | |
კლასი გამოიყენება ობიექტის ინსტალაციისთვის. | ინტერფეისის ინსტალაცია შეუძლებელია, რადგან მეთოდებს არ შეუძლიათ რაიმე მოქმედების შესრულება. |
კონსტრუქტორი | |
კლასი შეიცავს კონსტრუქტორს ცვლადების ინიციალიზაციისთვის. | ინტერფეისი არ შეიცავს კონსტრუქტორს, რადგან ისინი თითქმის არ არიან ინიციალიზაციის ცვლადები. |
საკვანძო სიტყვა | |
კლასი იყენებს საკვანძო სიტყვას "კლასი". | ინტერფეისი იყენებს საკვანძო სიტყვას "ინტერფეისი". |
წვდომის სპეციფიკატორი | |
კლასის წევრები შეიძლება იყვნენ პირადი, საჯარო და დაცული. | ინტერფეისის წევრები ყოველთვის საჯარო უნდა იყოს, რადგან განმახორციელებელი კლასები განსაზღვრავენ მათ. |
შეჯამება – კლასი vs ინტერფეისი
კლასები და ინტერფეისები ფართოდ გამოიყენება ობიექტზე ორიენტირებულ პროგრამირებაში. კლასსა და ინტერფეისს შორის განსხვავება იმაში მდგომარეობს, რომ კლასი არის საცნობარო ტიპი, რომელიც არის გეგმა ობიექტის ინსტალაციისთვის, ხოლო ინტერფეისი არის საცნობარო ტიპი, რომელიც არ შეიძლება გამოყენებულ იქნას ობიექტის ინსტალაციისთვის.კლასს შეუძლია მრავალი ინტერფეისის დანერგვა. მაგრამ მას შეუძლია მხოლოდ ერთი სუპერკლასის გაფართოება. ინტერფეისში შეიძლება მრავალი ინტერფეისის მემკვიდრეობა, მაგრამ არ შეიძლება იყოს განხორციელება. ორივეს თავისი მნიშვნელობა აქვს. პროგრამისტს შეუძლია მათი გამოყენება პროგრამული უზრუნველყოფის შემუშავების მიხედვით.
ჩამოტვირთეთ PDF კლასი ინტერფეისის წინააღმდეგ
შეგიძლიათ ჩამოტვირთოთ ამ სტატიის PDF ვერსია და გამოიყენოთ იგი ოფლაინ მიზნებისთვის ციტირების შენიშვნის მიხედვით. გთხოვთ ჩამოტვირთოთ PDF ვერსია აქ სხვაობა კლასსა და ინტერფეისს შორის