This shows you the differences between two versions of the page.
|
java:packages:intro [2015/09/18 14:09] gthanos |
java:packages:intro [2022/02/24 13:59] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | ||
| - | Σε αυτό το κεφάλαιο θα δούμε πως μπορούμε να ομαδοποιήσουμε κλάσεις σε **πακέτα** (**packages**). Τα πακέτα μπορούν να περιέχουν τόσο κλάσεις όσο και διεπαφές (interfaces). Επειδή προς το παρόν δεν έχουμε μιλήσει για διεπαφές θεωρήστε ότι τα πακέτα σας διαθέτουν μόνο κλάσεις. | ||
| - | |||
| - | Προκειμένου να είναι ευκολότερη η αναζήτηση και η ομαδοποίηση κλάσεων που έχουν κοινά χαρακτηριστικά προκρίνεται από τη Java η ομαδοποίηση τους σε πακέτα που περιέχουν κλάσεις. Φανταστείτε ένα εικονικό " | ||
| - | |||
| - | Επιπλέον, | ||
| - | |||
| - | <WRAP center info round 60%> | ||
| - | Η Java απαγορεύει την ύπαρξη δύο κλάσεων που έχουν το ίδιο όνομα και ανήκουν στο ίδιο πακέτο. | ||
| - | </ | ||
| - | |||
| - | Ας υποθέσουμε ότι στο γνωστό παράδειγμα του ποδηλάτου έχουμε τις εξής κλάσεις. | ||
| - | |||
| - | <code java> | ||
| - | public class Bicycle { | ||
| - | .... | ||
| - | } | ||
| - | |||
| - | public class MountainBike extends Bicycle { | ||
| - | .... | ||
| - | } | ||
| - | |||
| - | public class BicycleForTwo extends Bicycle { | ||
| - | .... | ||
| - | } | ||
| - | |||
| - | public class MotorBike extends Bicycle { | ||
| - | .... | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | <WRAP note> Έχουμε αναφέρει ότι κάθε κλάση ανήκει σε ξεχωριστό αρχείο .java. Η παραπάνω γραφή γίνεται για λόγους οικονομίας χώρου και δεν ανταποκρίνεται στις προδιαγραφές που θέτει ο compiler της Java. Το ίδιο ισχύει και για τον κώδικα παρακάτω. | ||
| - | </ | ||
| - | |||
| - | Καθώς όλες οι παραπάνω κλάσεις αφορούν τύπους ποδηλάτου θα μπορούσαν να ομαδοποιηθούν σε ένα πακέτο (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 { | ||
| - | .... | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Εάν δεν δημιουργήσετε ένα πακέτο για τις κλάσεις σας αυτές θα τοποθετηθούν στο ανώνυμο default πακέτο. Γενικά, | ||
| - | |||
| - | Όλα τα αρχεία των κλάσεων που ανήκουν στο πακέτο '' | ||
| - | |||
| - | < | ||
| - | bicycles/ | ||
| - | bicycles/ | ||
| - | bicycles/ | ||
| - | bicycles/ | ||
| - | bicycles/ | ||
| - | </ | ||
| - | |||
| - | |Προηγούμενο: | ||