ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 8: Πακέτα (Packages)

Σχετικά έγγραφα
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008

Εισαγωγή στους Αλγορίθμους

Διοικητική Λογιστική

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Εισαγωγή στους Αλγορίθμους

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Φιλοσοφία της Ιστορίας και του Πολιτισμού

Διδακτική των εικαστικών τεχνών Ενότητα 1

Διδακτική των εικαστικών τεχνών Ενότητα 3

Κβαντική Επεξεργασία Πληροφορίας

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Εισαγωγή στους Αλγορίθμους

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

Διδακτική των εικαστικών τεχνών Ενότητα 2

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Γενική Φυσική Ενότητα: Ταλαντώσεις

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 7: Πίνακες (Arrays)

Διοικητική Λογιστική

Τεχνικό Σχέδιο - CAD

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Θεατρικές Εφαρμογές και Διδακτική της Φυσικής Ι

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Κβαντική Επεξεργασία Πληροφορίας

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Έλεγχος Ποιότητας Φαρμάκων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διδακτική των εικαστικών τεχνών Ενότητα 2

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Γενική Φυσική Ενότητα: Δυναμική Άκαμπτου Σώματος

Οντοκεντρικός Προγραμματισμός

Εισαγωγή στις Επιστήμες της Αγωγής

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Διδακτική Πληροφορικής

Ιστορία της μετάφρασης

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Βέλτιστος Έλεγχος Συστημάτων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στη Μουσική Τεχνολογία Ενότητα: Ελεγκτές MIDI μηνυμάτων (Midi Controllers)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Παιδαγωγικά. Ενότητα Β: Γενικοί σκοποί της διδασκαλίας και διδακτικοί στόχοι. Ζαχαρούλα Σμυρναίου Σχολή Φιλοσοφίας Τμήμα Παιδαγωγικής και Ψυχολογίας

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Ψηφιακή Επεξεργασία Εικόνων

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Φυσική ΙΙΙ. Ενότητα 4: Ηλεκτρικά Κυκλώματα. Γεώργιος Βούλγαρης Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Υπολογιστές

Ηλεκτρομαγνητισμός - Οπτική - Σύγχρονη Φυσική Ενότητα: Οπτική. Βαρουτάς Δημήτρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Υπολογιστική άλγεβρα Ενότητα 1: Πολυωνυμικές σχέσεις και ταυτότητες, μέρος Ι

Ποιοτική μεθοδολογία έρευνας στη Διδακτική των Μαθηματικών Ενότητα 7: Συγγραφή μιας εργασίας

Διδακτική της Πληροφορικής

Τεχνικό Σχέδιο - CAD

Εισαγωγή στις Επιστήμες της Αγωγής

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Κβαντική Επεξεργασία Πληροφορίας

Κβαντική Επεξεργασία Πληροφορίας

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Transcript:

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 8: Πακέτα (Packages) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σημειώσεις Java Ενότητα 8 Ν Φερεντίνος ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 8 Πακέτα ( Packages) Τα πακέτα αποτελούν τρόπο ομαδοποίησης κλάσεων συναφούς λειτουργικότητας Ένα πακέτο λειτουργεί σαν βιβλιοθήκη κλάσεων που μπορούν να χρησιμοποιηθούν από ένα πρόγραμμα χωρίς να βρίσκονται στον υποκατάλογό του Κάθε πακέτο έχει ένα όνομα και όλες του οι κλάσεις βρίσκονται στον ίδιο υποκατάλογο, που έχει το ίδιο όνομα με το πακέτο Οι κλάσεις ενός πακέτου είναι κανονικές κλάσεις, άρα ορίζονται: public class <ClassName> αλλά πριν τον ορισμό τους έχουν την ακόλουθη δήλωση: package <packagename>; πχ Έστω ότι είμαστε μέσα στον υποκατάλογο με όνομα pack1, ο οποίος έχει μέσα δύο κλάσεις, τα αρχεία ClassOnejava και ClassTwojava: Αρχείο ClassOnejava: package pack1; public class ClassOne Αρχείο ClassTwojava: package pack1; public class ClassTwo Επίσης, έστω ότι στον υποκατάλογο pack1 υπάρχει νέος υποκατάλογος με το όνομα smallpack ο οποίος περιέχει τις ακόλουθες κλάσεις: ver 120305 Τμήμα Μαθηματικών ΕΚΠΑ 1

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σημειώσεις Java Ενότητα 8 Ν Φερεντίνος Αρχείο Class1java: package pack1smallpack; public class Class1 Αρχείο Class2java: package pack1smallpack; public class Class2 Για να χρησιμοποιήσουμε στο πρόγραμμά μας τις κλάσεις του πακέτου pack1 χρησιμοποιούμε την εντολή import: Αρχείο MyClass1java: import pack1*; public class MyClass1 ενώ ειδικά για τις κλάσεις του πακέτου smallpack: Αρχείο MyClass2java: import pack1smallpack*; public class MyClass2 Άρα, με τη δήλωση: import <packagename>*; μπορούμε να χρησιμοποιήσουμε όλες τις κλάσεις ενός πακέτου σε κάποια κλάση του προγράμματός μας Είναι κλάσεις που βρίσκονται εκτός του υποκαταλόγου του προγράμματός μας Το * δηλώνει όλες τις κλάσεις ενός πακέτου Μπορούμε να κάνουμε import σε μια κλάση μόνο συγκεκριμένες κλάσεις ενός πακέτου, ενώ μπορούμε φυσικά να κάνουμε import κλάσεις από πολλά πακέτα Πχ, αν θέλαμε στην ver 120305 Τμήμα Μαθηματικών ΕΚΠΑ 2

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σημειώσεις Java Ενότητα 8 Ν Φερεντίνος κλάση μας MyClass3 να συμπεριλάβουμε όλο το pack1 και την Class2 του pack1smallpack: import pack1*; import pack1smallpackclass2; public class MyClass3 Στο παράδειγμα αυτό των pack1 και smallpack πακέτων, το smallpack, το οποίο βρίσκεται σε έναν υποκατάλογο του pack1, ονομάζεται υποπακέτο του pack1 Η δομή αυτή υπάρχει για να μπορούν οι κλάσεις κάθε πακέτου να χωρίζονται σε υπο-ομάδες συναφούς λειτουργικότητας, έτσι ώστε κάποιος να μπορεί εύκολα να συμπεριλάβει στο πρόγραμμά του μια υπο-ομάδα κλάσεων με τη δήλωση: import <πακέτο><υποπακέτο>*; χωρίς να χρειάζεται να κάνει import μία-μία τις κλάσεις αυτές ή να αναγκάζεται να κάνει import όλο το πακέτο, το οποίο μπορεί να περιέχει πολλές κλάσεις που δεν θα χρειαστεί Περί ορατότητας μεταβλητών και μεθόδων: Ορατότητα: public private χωρίς δήλωση ορατότητας Από την ίδια την κλάση ναι ναι ναι Από άλλη κλάση στο ίδιο πακέτο ναι όχι ναι Από άλλη κλάση έξω από το πακέτο (η οποία κάνει import το πακέτο) ναι όχι όχι δηλαδή, οι public μεταβλητές (ή μέθοδοι) είναι ορατές από παντού οι private είναι ορατές μόνο μέσα στην κλάση όπου ορίζονται οι χωρίς δήλωση είναι ορατές από τις κλάσεις του πακέτου μόνο, δηλαδή αποτελούν κάτι ενδιάμεσο, μεταξύ public και private Άρα: - για κλάσεις του ίδιου πακέτου: «χωρίς δήλωση» public - για κλάσεις εκτός πακέτου: «χωρίς δήλωση» private (Υπάρχει και η ορατότητα protected στην οποία θα αναφερθούμε στην ενότητα της κληρονομικότητας) ver 120305 Τμήμα Μαθηματικών ΕΚΠΑ 3

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σημειώσεις Java Ενότητα 8 Ν Φερεντίνος Παράδειγμα: Έχουμε ένα πακέτο (pack1) με τις ακόλουθες δύο κλάσεις: package pack1; public class ClassA private void method1() public void method2() void method3() package pack1; public class ClassB ClassA obj = new ClassA(); public void method4() objmethod1(); // ΛΑΘΟΣ! objmethod2(); objmethod3(); Στο πρόγραμμά μας κάνουμε χρήση του πακέτου pack1: import pack1*; public class MyClass ClassA obja = new ClassA(); public void mymethod() objamethod1(); // ΛΑΘΟΣ! objamethod2(); objamethod3(); // ΛΑΘΟΣ!! objamethod4(); // ΛΑΘΟΣ!! (η method4() ανήκει στην ClassB) Κλάσεις με το ίδιο όνομα σε διαφορετικά πακέτα Αν υπάρχει κλάση με το ίδιο όνομα σε δύο διαφορετικά πακέτα, τότε αναφορές στο όνομα της κλάσης αυτής θα πρέπει να περιέχουν και το όνομα του πακέτου Πχ, αν σε συνέχεια του προηγούμενο παραδείγματος με το pack1, θέλουμε να χρησιμοποιήσουμε και το pack2, το οποίο περιέχει και αυτό μια κλάση με το όνομα πχ ClassB, τότε: import pack1*; import pack2*; public class MyNewClass pack1classb obj1 = new pack1classb(); pack2classb obj2 = new pack2classb(); ver 120305 Τμήμα Μαθηματικών ΕΚΠΑ 4

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σημειώσεις Java Ενότητα 8 Ν Φερεντίνος Στην περίπτωση αυτή, χρησιμοποιούμε το <πακέτο><κλάση> για να αναφερθούμε στη συγκεκριμένη κάθε φορά ClassB επειδή υπάρχουν δύο τέτοιες κλάσεις Επιπλέον, επειδή ακριβώς χρησιμοποιούμε το <πακέτο><κλάση>, δεν είναι απαραίτητο να κάνουμε import τα πακέτα pack1 και pack2 Δηλαδή, στις κλάσεις που χρησιμοποιούμε την κλάση Scanner για είσοδο από το πληκτρολόγιο και κάνουμε import το πακέτο javautil: import javautil*; public class InputExample Scanner input = new Scanner(Systemin); θα μπορούσαμε ισοδύναμα να γράφαμε: public class InputExample javautilscanner input = new javautilscanner(systemin); Σε μια κλάση μπορεί να έχουμε και δήλωση πακέτου και import κάποιου πακέτου Πχ package pack3test; // η κλάση ανήκει στο πακέτο pack3test import javaxswing*; // η κλάση χρησιμοποιεί το πακέτο javaxswing public class AskForData Η δήλωση πακέτου (package <packagename>;) είναι υποχρεωτικά η πρώτη εντολή της κλάσης ver 120305 Τμήμα Μαθηματικών ΕΚΠΑ 5

Σημειώματα Σημείωμα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Μιχάλης Δρακόπουλος, 2014 Μιχάλης Δρακόπουλος «Πληροφορική ΙI Ενότητα 8: Πακέτα (Packages)» Έκδοση: 10 Αθήνα 2014 Διαθέσιμο από τη δικτυακή διεύθυνση: http://opencoursesuoagr/courses/math106/ Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 40 [1] ή μεταγενέστερη, Διεθνής Έκδοση Εξαιρούνται τα αυτοτελή έργα τρίτων πχ φωτογραφίες, διαγράμματα κλπ, τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων» [1] http://creativecommonsorg/licenses/by-nc-sa/40/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (πχ διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους Σελίδα 4