java:packages:intro

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Πακέτα στη γλώσσα προγραμματισμού Java ====== Σε αυτό το κεφάλαιο θα δούμε πως μπορούμε αν ομαδοποιήσουμε κλάσεις σε **πακέτα** (**packages**). Τα πακέτα μπορούν να περιέχουν τόσο κλάσεις όσο και διεπαφές (interfaces). Επειδή προς το παρόν δεν έχουμε μιλήσει για διεπαφές θεωρήστε ότι τα πακέτα σας διαθέτουν μόνο κλάσεις. Προκειμένου να είναι ευκολότερη η αναζήτηση και η ομαδοποίηση κλάσεων που έχουν κοινά χαρακτηριστικά προτείνεται η ομάδοποίηση τους σε πακέτα. Επίσης, τα πακέτα χρησιμοποιούνται ώστε να αποφεύγονται προβλήματα ονοματοδοσίας σε κλάσεις. Για παράδειγμα, αν δύο κλάσεις έχουν το ίδιο όνομα πως θα ξέρουμε ποια κλάση χρησιμοποιούμε κάθε φορά; Η απάντηση είναι ότι αν κάθε κλάση βρίσκεται σε διαφορετικό πακέτο, τότε μπορούμε να χρησιμοποιήσουμε την κλάση που επιθυμούμε βάζοντας ως πρόθεμα στο όνομα της το όνομα του πακέτου. Ας υποθέσουμε ότι στο γνωστό παράδειγμα του ποδηλάτου έχουμε τις εξής κλάσεις. <code java> public class Bicycle { .... } public class MountainBike extends Bicycle { .... } public class BicycleForTwo extends Bicycle { .... } public class MotorBike extends Bicycle { .... } </code> <WRAP note> Έχουμε αναφέρει ότι κάθε κλάση ανήκει σε ξεχωριστό αρχείο .java. Η παραπάνω γραφή γίνεται για λόγους οικονομίας χώρου και δεν ανταποκρίνεται στις προδιαγραφές που θέτει ο compiler της Java. Το ίδιο ισχύει και για τον κώδικα παρακάτω. </WRAP> Καθώς όλες οι παραπάνω κλάσεις αφορούν τύπους ποδηλάτου θα μπορούσαν να ομαδοποιηθούν σε ένα πακέτο (package). Συνιστάται η ομαδοποίηση κλάσεων σε πακέτα για τους εξής λόγους: - Κλάσεις με συγγενές αντικείμενο ομαδοποιούνται σε ένα πακέτο, ώστε οι προγραμματιστές να γνωρίζουν ότι οι κλάσεις αυτές αφορούν συγκεκριμένες λειτουργίες του λογισμικού. - Επεκτείνοντας την παραπάνω λογική άλλοι προγραμματιστές θα προσπαθήσουν να βρουν συγγενείς κλάσεις μέσα στο ίδιο πακέτο. - Αποφεύγεται μία πιθανή "σύγκρουση" (conflict) στην ονοματοδοσία των κλάσεων. - Όπως θα δούμε στη συνέχεια, σε μία κλάση που ανήκει σε συγκεκριμένο πακέτο (package) μπορούμε να επιτρέψουμε οι κλάσεις που ανήκουν στο ίδιο πακέτο να έχουν διαφορετικό επίπεδο πρόσβασης σε πεδία και μεθόδους από τις κλάσεις εκτός του πακέτου αυτού. ====== Δημιουργία ενός πακέτου ====== Για το παραπάνω απόσπασμα κώδικα η δημιουργία ενός πακέτου που να περιέχει όλες τις παραπάνω κλάσεις θα μπορούσε να δωθεί ως εξής. <code java> package bicycles; public class Bicycle { .... } package bicycles; public class MountainBike extends Bicycle { .... } package bicycles; public class BicycleForTwo extends Bicycle { .... } package bicycles; public class MotorBike extends Bicycle { .... } </code> Εάν δεν δημιουργήσετε ένα πακέτο για τις κλάσεις σας αυτές θα τοποθετηθούν στο ανώνυμο default πακέτο. Γενικά, ο μη ορισμός πακέτων μπορεί να λειτουργήσει μόνο σε μικρής έκτασης προγράμματα. Μεγαλύτερα προγράμματα θα πρέπει απαραίτητα να είναι χωρισμένα σε πακέτα. |Προηγούμενο: [[:java:static_keyword | Στατικές μεταβλητές και μέθοδοι ]] | Επόμενο: [[ :java:packages:naming | Ονοματοδοσία πακέτων ]]|

java/packages/intro.1423085167.txt.gz · Last modified: 2016/02/26 11:15 (external edit)