საკვანძო განსხვავება Package-სა და Interface-ს შორის Java-ში არის ის, რომ Package ეხმარება კლასების მეთოდურად კატეგორიზაციას მათზე წვდომისა და შესანარჩუნებლად, ხოლო ინტერფეისი ეხმარება მრავალი მემკვიდრეობის განხორციელებას და აბსტრაქციის მიღწევას.
Java არის ერთ-ერთი ყველაზე პოპულარული პროგრამირების ენა. ჯავის მთავარი უპირატესობა ის არის, რომ მხარს უჭერს ობიექტზე ორიენტირებული პროგრამირებას. ეს მეთოდოლოგია საშუალებას იძლევა რეალური სამყაროს ობიექტების მოდელირება პროგრამულ უზრუნველყოფაში. კლასი არის ობიექტის შექმნის გეგმა. თითოეული ობიექტი შეიცავს მონაცემებს ან ველებს ატრიბუტების ან თვისებებისა და მეთოდების აღსაწერად ქცევის აღსაწერად. ეს სტატია განიხილავს OOP-თან დაკავშირებულ ორ კონცეფციას Java-ში Java-ში, ეს არის პაკეტი და ინტერფეისი.
რა არის პაკეტი ჯავაში?
Java გთავაზობთ კლასების დიდ რაოდენობას. ყველა კლასის ერთ საქაღალდეში შენახვა შეიძლება რთული იყოს, რადგან ძნელია წვდომა. ამან შეიძლება გავლენა მოახდინოს პროგრამის მართვაზე. ჯავა იყენებს პაკეტებს კლასების მოსაწყობად. საქაღალდის მსგავსია. Java API აჯგუფებს კლასებს სხვადასხვა პაკეტებად ფუნქციონალურობის მიხედვით. ამიტომ, თითოეული პაკეტი შეიცავს კლასების შესაბამის კომპლექტს.
პაკეტების მაგალითი ჯავაში
პაკეტების რამდენიმე მაგალითი შემდეგია. java.io პაკეტი შეიცავს შეყვანის, გამომავალი დამხმარე კლასებს. მასში შედის File, PrintStream, BufferInputStream და ა.შ. java.net პაკეტი შეიცავს ქსელთან დაკავშირებულ კლასებს. ზოგიერთი მაგალითია URL, Socket, ServerSocket. java.awt პაკეტი შეიცავს ყველა კლასს, რომელიც საჭიროა მომხმარებლის გრაფიკული ინტერფეისის შესაქმნელად. ეს არის რამდენიმე Java API პაკეტი.
როდესაც პროგრამისტს სურს გამოიყენოს გარკვეული კლასი პროგრამაში, მან უნდა შემოიტანოს ეს პაკეტი. თუ პროგრამისტს სურს გამოიყენოს BufferInputStream კლასი java.io პაკეტში, მან უნდა დაწეროს იმპორტის განცხადება შემდეგნაირად.
იმპორტი java.util. BufferInoutStream;
ქვემოთ მოცემული წინადადება შემოაქვს ყველა კლასს util პაკეტში.
იმპორტი java.util.;
ასევე შესაძლებელია მომხმარებლის განსაზღვრული პაკეტების შექმნა.
პაკეტის თანამშრომელი;
საჯარო კლასის თანამშრომელი {
}
ზემოხსენებული მაგალითის მიხედვით, თანამშრომელი არის პაკეტის სახელი. Employee კლასი არის თანამშრომელთა პაკეტის ნაწილი. ეს ფაილი ინახება როგორც Employee.java თანამშრომლის პაკეტში.
უფრო მეტიც, შესაძლებელია საჯარო კლასის იმპორტი ერთი პაკეტიდან მეორეში. იხილეთ შემდეგი მაგალითი.
სურათი 01: კლასი A
სურათი 02: კლასი B
კლასი A არის პაკეტში 1 და შეიცავს საჯარო მეთოდს, რომელსაც ჩვენება ეწოდება. კლასი B არის მე-2 პაკეტში და შეიცავს ძირითად მეთოდს. მიუხედავად იმისა, რომ ისინი ცალკე პაკეტებშია; B კლასს შეუძლია შექმნას A კლასის ობიექტი პაკეტი1-ის იმპორტით. პაკეტი 1 იმპორტის შემდეგ, B კლასს აქვს წვდომა A კლასის მონაცემებსა და მეთოდებზე.
საერთო ჯამში, პაკეტი Java-ში ეხმარება პროექტის ფაილების ორგანიზებას. ეს ძალიან სასარგებლოა დიდი სისტემის შემუშავებისას, რადგან ის საშუალებას გაძლევთ შეინახოთ ყველა ფაილი მეთოდურად. გარდა ამისა, Java API პაკეტები საშუალებას აძლევს პროგრამისტებს გამოიყენონ უკვე არსებული კლასები.
რა არის ინტერფეისი ჯავაში?
ზოგჯერ პროგრამისტმა შეიძლება არ იცოდეს მეთოდის განმარტება. ამ სიტუაციებში, პროგრამისტს შეუძლია მხოლოდ გამოაცხადოს მეთოდი. აბსტრაქტული მეთოდი არის მეთოდი, რომელსაც არ აქვს განმარტება. მას მხოლოდ დეკლარაცია აქვს. როდესაც არსებობს მინიმუმ ერთი აბსტრაქტული მეთოდი, ეს კლასი ხდება აბსტრაქტული კლასი. უფრო მეტიც, აბსტრაქტული კლასი შეიძლება შეიცავდეს როგორც აბსტრაქტულ მეთოდებს, ასევე არააბსტრაქტულ მეთოდებს. პროგრამისტს არ შეუძლია შექმნას ობიექტები აბსტრაქტული კლასებიდან.
როდესაც კლასი აფართოებს აბსტრაქტულ კლასს, ახალმა კლასმა უნდა განსაზღვროს ყველა აბსტრაქტული მეთოდი აბსტრაქტულ კლასში. სხვა სიტყვებით რომ ვთქვათ, დავუშვათ, რომ აბსტრაქტულ A კლასს აქვს აბსტრაქტული მეთოდი, რომელსაც ეწოდება ჩვენება. B კლასი აფართოებს A კლასს. შემდეგ B კლასმა უნდა განსაზღვროს მეთოდის ჩვენება.
ინტერფეისის მაგალითი ჯავაში
ვუშვათ, რომ ორივე A და B აბსტრაქტული კლასებია. თუ კლასი C აფართოებს A და B, ამ კლასმა უნდა განსაზღვროს ორივე კლასის აბსტრაქტული მეთოდები.ეს არის მრავალჯერადი მემკვიდრეობა. ჯავას არ აქვს მრავალჯერადი მემკვიდრეობის მხარდაჭერა. მისი განსახორციელებლად, პროგრამისტმა უნდა გამოიყენოს ინტერფეისები. თუ A და B არის ინტერფეისები, მაშინ C კლასს შეუძლია მათი განხორციელება. იხილეთ შემდეგი მაგალითი.
სურათი 03: ინტერფეისი A
სურათი 04: ინტერფეისი B
A ინტერფეისს აქვს display1 აბსტრაქტული მეთოდი, ხოლო B ინტერფეისს აქვს display2 აბსტრაქტული მეთოდი.
სურათი 05: კლასი C
კლასი C ახორციელებს A და B ინტერფეისებს. ამიტომ, მან უნდა განსაზღვროს ორივე მეთოდი.
სურათი 06: ძირითადი მეთოდი
ახლა მთავარ მეთოდში შესაძლებელია C-ის ობიექტის შექმნა და ორივე მეთოდის გამოძახება. ანალოგიურად, ინტერფეისები ეხმარება ჯავაში მრავალჯერადი მემკვიდრეობის განხორციელებას.
სხვადასხვა მემკვიდრეობის გარდა, ინტერფეისები ხელს უწყობს აბსტრაქციის მიღწევას. ეს არის ერთ-ერთი მთავარი კონცეფცია OOP-ში. აბსტრაქცია საშუალებას იძლევა დამალოს განხორციელების დეტალები და მხოლოდ ფუნქციონალობა აჩვენოს მომხმარებელს. გარდა ამისა, ის საშუალებას იძლევა ფოკუსირება მოახდინოთ იმაზე, თუ რას აკეთებს ობიექტი იმის ნაცვლად, თუ როგორ კეთდება. რამდენადაც ინტერფეისი შედგება აბსტრაქტული მეთოდებისგან, ის ეხმარება აბსტრაქციის არქივირებას.
რა განსხვავებაა პაკეტსა და ინტერფეისს შორის Java-ში?
პაკეტი არის დაკავშირებული კლასების ჯგუფი, რომელიც უზრუნველყოფს წვდომის დაცვას და სახელთა სივრცის მართვას.ინტერფეისი არის კლასის მსგავსი საცნობარო ტიპი, რომელიც წარმოადგენს აბსტრაქტული მეთოდების კრებულს. პაკეტი გვეხმარება კლასების მეთოდურად კატეგორიზაციაში, რათა მათ მარტივად წვდომა და შენარჩუნება. მეორეს მხრივ, ინტერფეისი ეხმარება მრავალი მემკვიდრეობის განხორციელებას და აბსტრაქციის მიღწევას. ეს არის მთავარი განსხვავება პაკეტსა და ინტერფეისს შორის Java-ში. გარდა ამისა, პაკეტის დაწერის გზა არის პატარა ასოებით, როგორიცაა java.util, java.awt. თუ ინტერფეისის სახელია Area, მაშინ ის იწერება ინტერფეისის ზონაში.
შეჯამება – პაკეტი ჯავაში ინტერფეისის წინააღმდეგ
სხვაობა Package-სა და Interface-ს შორის Java-ში არის ის, რომ Package ეხმარება კლასების მეთოდურ კატეგორიზაციას მათზე წვდომისა და შესანარჩუნებლად, ხოლო ინტერფეისი ეხმარება მრავალი მემკვიდრეობის განხორციელებას და აბსტრაქციის მიღწევას.