This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:packages:intro [2015/02/18 13:46] gthanos [Δημιουργία ενός πακέτου] |
java:packages:intro [2022/02/24 13:52] gthanos [Πακέτα στη γλώσσα προγραμματισμού Java] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== | ====== | ||
| - | Σε αυτό το κεφάλαιο θα δούμε πως μπορούμε | + | Σε αυτό το κεφάλαιο θα δούμε πως μπορούμε να ομαδοποιήσουμε κλάσεις σε **πακέτα** (**packages**). Τα πακέτα μπορούν να περιέχουν τόσο κλάσεις όσο και διεπαφές (interfaces). Επειδή προς το παρόν δεν έχουμε μιλήσει για διεπαφές θεωρήστε ότι τα πακέτα σας διαθέτουν μόνο |
| - | Προκειμένου να είναι ευκολότερη η αναζήτηση και η ομαδοποίηση κλάσεων που έχουν κοινά χαρακτηριστικά προκρίνεται από τη Java η ομαδοποίηση τους σε πακέτα | + | Προκειμένου να είναι ευκολότερη η ομαδοποίηση και η αναζήτηση κλάσεων που έχουν κοινά χαρακτηριστικά προτείνεται από τη Java η ομαδοποίηση τους σε πακέτα. Φανταστείτε ένα εικονικό " |
| - | Επιπλέον, τα πακέτα χρησιμοποιούνται ώστε να αποφεύγονται προβλήματα ονοματοδοσίας σε κλάσεις που | + | Ας υποθέσουμε ότι έχουμε μία σειρά κλάσεων που περιγράφουν |
| - | <WRAP center info round 60%> | + | * Bicycle |
| - | Η Java απαγορεύει την ύπαρξη δύο κλάσεων που έχουν το ίδιο όνομα και ανήκουν στο ίδιο πακέτο. | + | |
| - | </ | + | |
| - | + | | |
| - | Ας υποθέσουμε ότι στο γνωστό παράδειγμα του ποδηλάτου έχουμε τις εξής κλάσεις. | + | |
| - | + | ||
| - | <code java> | + | |
| - | public class Bicycle | + | |
| - | .... | + | |
| - | } | + | |
| - | + | ||
| - | public class MountainBike | + | |
| - | .... | + | |
| - | } | + | |
| - | + | ||
| - | public class BicycleForTwo | + | |
| - | .... | + | |
| - | } | + | |
| - | + | ||
| - | public class MotorBike | + | |
| - | | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | <WRAP note> Έχουμε αναφέρει ότι κάθε κλάση ανήκει σε ξεχωριστό αρχείο .java. Η παραπάνω γραφή γίνεται για λόγους οικονομίας χώρου και δεν ανταποκρίνεται στις προδιαγραφές που θέτει ο compiler της Java. Το ίδιο ισχύει και για τον κώδικα παρακάτω. | + | |
| - | </ | + | |
| Καθώς όλες οι παραπάνω κλάσεις αφορούν τύπους ποδηλάτου θα μπορούσαν να ομαδοποιηθούν σε ένα πακέτο (package). Συνιστάται η ομαδοποίηση κλάσεων σε πακέτα για τους εξής λόγους: | Καθώς όλες οι παραπάνω κλάσεις αφορούν τύπους ποδηλάτου θα μπορούσαν να ομαδοποιηθούν σε ένα πακέτο (package). Συνιστάται η ομαδοποίηση κλάσεων σε πακέτα για τους εξής λόγους: | ||
| - | | + | |
| - | | + | |
| - | - Αποφεύγεται μία πιθανή " | + | |
| - | - Όπως θα δούμε στη συνέχεια, σε μία | + | |
| - | ====== Δημιουργία | + | ==== Δημιουργία πακέτου ==== |
| Για το παραπάνω απόσπασμα κώδικα η δημιουργία ενός πακέτου που να περιέχει όλες τις παραπάνω κλάσεις θα μπορούσε να δοθεί ως εξής. | Για το παραπάνω απόσπασμα κώδικα η δημιουργία ενός πακέτου που να περιέχει όλες τις παραπάνω κλάσεις θα μπορούσε να δοθεί ως εξής. | ||
| - | <code java> | + | < |
| package bicycles; | package bicycles; | ||
| public class Bicycle { | public class Bicycle { | ||
| .... | .... | ||
| } | } | ||
| + | </ | ||
| + | <code java MountainBike.java> | ||
| package bicycles; | package bicycles; | ||
| - | public class MountainBike | + | public class MountainBike { |
| .... | .... | ||
| } | } | ||
| + | </ | ||
| + | <code java BicycleForTwo.java> | ||
| package bicycles; | package bicycles; | ||
| - | public class BicycleForTwo | + | public class BicycleForTwo { |
| .... | .... | ||
| } | } | ||
| + | </ | ||
| + | <code java MotorBike.java> | ||
| package bicycles; | package bicycles; | ||
| - | public class MotorBike | + | public class MotorBike { |
| .... | .... | ||
| } | } | ||
| </ | </ | ||
| - | Εάν δεν δημιουργήσετε ένα πακέτο για | + | Εάν δεν δημιουργήσετε ένα πακέτο για |
| - | Όλα τα αρχεία των κλάσεων που ανήκουν στο πακέτο '' | + | Κατά σύμβαση στη Java, όλα τα αρχεία |
| < | < | ||
| Line 78: | Line 60: | ||
| </ | </ | ||
| - | |Προηγούμενο: [[:java:static_keyword | + | Η δήλωση δηλαδή ενός ή περισσότερων πακέτων προϋποθέτει την ύπαρξη μία ιεραρχίας καταλόγων για τα αρχεία **.java** που περιέχονται στα πακέτα αυτά. |
| + | |||
| + | ==== Συγκρούσεις ονομάτων ==== | ||
| + | |||
| + | Επιπλέον, | ||
| + | |||
| + | Για παράδειγμα, | ||
| + | |||
| + | <WRAP important center round 80%> | ||
| + | O compiler της Java απαγορεύει την ύπαρξη δύο κλάσεων που έχουν το ίδιο όνομα | ||
| + | </ | ||
| + | |||
| + | |Προηγούμενο: | ||