java:packages:intro
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
java:packages:intro [2015/09/19 03:28] – gthanos | java:packages:intro [2022/02/24 13:59] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 3: | ||
Σε αυτό το κεφάλαιο θα δούμε πως μπορούμε να ομαδοποιήσουμε κλάσεις σε **πακέτα** (**packages**). Τα πακέτα μπορούν να περιέχουν τόσο κλάσεις όσο και διεπαφές (interfaces). Επειδή προς το παρόν δεν έχουμε μιλήσει για διεπαφές θεωρήστε ότι τα πακέτα σας διαθέτουν μόνο κλάσεις. Για τις διεπαφές ισχύει ότι ισχύει και για τις κλάσεις. | Σε αυτό το κεφάλαιο θα δούμε πως μπορούμε να ομαδοποιήσουμε κλάσεις σε **πακέτα** (**packages**). Τα πακέτα μπορούν να περιέχουν τόσο κλάσεις όσο και διεπαφές (interfaces). Επειδή προς το παρόν δεν έχουμε μιλήσει για διεπαφές θεωρήστε ότι τα πακέτα σας διαθέτουν μόνο κλάσεις. Για τις διεπαφές ισχύει ότι ισχύει και για τις κλάσεις. | ||
- | Προκειμένου να είναι ευκολότερη η ομαδοποίηση και η αναζήτηση κλάσεων που έχουν κοινά χαρακτηριστικά προκρίνεται από τη Java η ομαδοποίηση τους σε πακέτα | + | Προκειμένου να είναι ευκολότερη η ομαδοποίηση και η αναζήτηση κλάσεων που έχουν κοινά χαρακτηριστικά προτείνεται από τη Java η ομαδοποίηση τους σε πακέτα. Φανταστείτε ένα εικονικό " |
- | Επιπλέον, τα πακέτα χρησιμοποιούνται ώστε να αποφεύγονται προβλήματα ονοματοδοσίας σε κλάσεις που | + | Ας υποθέσουμε ότι έχουμε μία σειρά κλάσεων που περιγράφουν |
- | Για παράδειγμα, | + | |
- | + | | |
- | <WRAP important center round 60%> | + | |
- | Η Java απαγορεύει την ύπαρξη δύο κλάσεων που έχουν το ίδιο όνομα και ανήκουν στο ίδιο πακέτο. | + | |
- | </ | + | |
- | + | ||
- | Ας υποθέσουμε ότι στο γνωστό παράδειγμα του ποδηλάτου έχουμε τις εξής κλάσεις. | + | |
- | + | ||
- | <code java> | + | |
- | public class Bicycle | + | |
- | .... | + | |
- | } | + | |
- | + | ||
- | public class MountainBike | + | |
- | .... | + | |
- | } | + | |
- | + | ||
- | public class BicycleForTwo | + | |
- | .... | + | |
- | } | + | |
- | + | ||
- | public class MotorBike | + | |
- | | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | <WRAP note> Έχουμε αναφέρει ότι κάθε κλάση ανήκει σε ξεχωριστό αρχείο .java. Η παραπάνω γραφή γίνεται για λόγους οικονομίας χώρου και δεν ανταποκρίνεται στις προδιαγραφές που θέτει ο compiler της Java. Το ίδιο ισχύει και για τον κώδικα παρακάτω. | + | |
- | </ | + | |
Καθώς όλες οι παραπάνω κλάσεις αφορούν τύπους ποδηλάτου θα μπορούσαν να ομαδοποιηθούν σε ένα πακέτο (package). Συνιστάται η ομαδοποίηση κλάσεων σε πακέτα για τους εξής λόγους: | Καθώς όλες οι παραπάνω κλάσεις αφορούν τύπους ποδηλάτου θα μπορούσαν να ομαδοποιηθούν σε ένα πακέτο (package). Συνιστάται η ομαδοποίηση κλάσεων σε πακέτα για τους εξής λόγους: | ||
- | | + | |
- | | + | |
- | - Όπως θα δούμε στη συνέχεια, | + | |
- | ====== Δημιουργία | + | ==== Δημιουργία πακέτου ==== |
- | Για το παραπάνω απόσπασμα κώδικα η δημιουργία ενός πακέτου που να περιέχει όλες τις παραπάνω κλάσεις θα μπορούσε να δοθεί | + | Για το παραπάνω απόσπασμα κώδικα η δημιουργία ενός πακέτου που να περιέχει όλες τις παραπάνω κλάσεις θα μπορούσε να τοποθετώντας τη λέξη package ακολουθούμενη από το όνομα του πακέτου στην πρώτη γραμμή του αρχείου .java κάθε κλάσης που ανήκει στο πακέτο αυτό. Για το παραπάνω παράδειγμα μπορούμε να έχουμε τα εξής: |
- | <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 { |
.... | .... | ||
} | } | ||
</ | </ | ||
- | Εάν δεν δημιουργήσετε ένα πακέτο για τις κλάσεις σας αυτές θα τοποθετηθούν στο ανώνυμο default πακέτο. Γενικά, | + | Κατά σύμβαση στη Java, όλα τα αρχεία |
- | + | ||
- | Όλα τα αρχεία | + | |
< | < | ||
Line 79: | Line 58: | ||
</ | </ | ||
- | |Προηγούμενο: [[:java:static_keyword | + | <WRAP tip 80% center round> |
+ | Εάν δεν δημιουργήσετε ένα πακέτο για μία κλάση αυτή θα τοποθετηθεί στο ανώνυμο //default// πακέτο. Κατά κανόνα, | ||
+ | </ | ||
+ | |||
+ | ==== Συγκρούσεις ονομάτων ==== | ||
+ | |||
+ | Επιπρόσθετα, | ||
+ | |||
+ | Για παράδειγμα, | ||
+ | |||
+ | <WRAP important center round 80%> | ||
+ | O compiler της Java απαγορεύει τη χρήση στο ίδιο πρόγραμμα δύο κλάσεων που έχουν το ίδιο όνομα | ||
+ | </ | ||
+ | |||
+ | |Προηγούμενο: |
java/packages/intro.1442633305.txt.gz · Last modified: 2015/09/19 02:28 (external edit)