Κλάσεις και Αντικείµενα

Σχετικά έγγραφα
Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειμενοστρεφής Προγραμματισμός

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

Αντικειµενοστραφής Προγραµµατισµός

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Βασικά της γλώσσας JAVA

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

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

Βασικά Στοιχεία της Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπερφόρτωση Αντικείμενα σαν ορίσματα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

Αντικειμενοστρεφής Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

8. Μέθοδοι (Methods)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

Βασικά Στοιχεία της Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Constructors

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Δομημένος Προγραμματισμός

3 Αλληλεπίδραση Αντικειμένων

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Προγραµµατιστικές τεχνικές

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Εισαγωγή στον Προγραμματισμό με C++

Ανάπτυξη και Σχεδίαση Λογισμικού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Tοπικές μεταβλητές To αντικείμενο this Accessor, Mutator μέθοδοι

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Διαγράμματα Κλάσεων στη Σχεδίαση

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Προγραµµατιστικές Τεχνικές

Προγραμματισμός Ι (ΗΥ120)

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Από τη UML στον Κώδικα. Μέρος Α

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

(Διαφάνειες Νίκου Βιδάκη)

Mεταβλητές (variables) και Σταθερές (constants)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Διδάσκων: Παναγιώτης Ανδρέου

Τι είναι κλάση Κλάση

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Transcript:

Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης

Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν αντικείµενα από το πεδίο ορισµού του προβλήµατος Τα αντικείµενα δηµιουργούνται από κλάσεις, οι οποίες περιγράφουν το είδος των αντικειµένων Τα αντικείµενα καλούνται και στιγµιότυπα µιας κλάσης Οι κλάσεις ορίζουν νέους τύπους δεδοµένων, ενώ τα αντικείµενα είναι µεταβλητές αυτών των τύπων Ένα µεγάλο πρόγραµµα, αποτελείται από πολλά αντικείµενα πολλών κλάσεων, τα οποία αλληλεπιδρούν

Ορισµός Κλάσης στη Java 3 Πεδία Αποθηκεύουν δεδοµένα που θα χρησιµοποιηθούν από τα αντικείµενα Κατασκευαστές Χρησιµεύουν στη σωστή διαµόρφωση ενός αντικειµένου όταν αυτό δηµιουργείται για πρώτη φορά Μέθοδοι public class ΌνοµαΚλάσης { Πεδία (Fields) Κατασκευαστές (Constructors) Μέθοδοι (Methods) } Υλοποιούν τη συµπεριφορά των αντικειµένων

Πεδία 4 Χώροι µνήµης για την αποθήκευση των δεδοµένων κάθε αντικειµένου Καλούνται και µεταβλητές στιγµιοτύπου Το σύνολο των τιµών όλων των πεδίων ενός αντικειµένου καλείται και κατάσταση του αντικειµένου Μπροστά από τον τύπο δεδοµένων τους βάζουµε πάντα τη λέξη κλειδί private (περισσότερα στη συνέχεια) Θυµηθείτε την αρχή της ενθυλάκωσης

Κατασκευαστές και Μέθοδοι 5 Αποτελούνται από την επικεφαλίδα και το σώµα Στην επικεφαλίδα περιλαµβάνονται προαιρετικά παράµετροι, µέσω των οποίων οι κατασκευαστές και οι µέθοδοι λαµβάνουν τιµές Η µεταβλητή στην οποία αποθηκεύεται η τιµή που λαµβάνεται καλείται τυπική παράµετρος ενώ η ίδια τιµή καλείται πραγµατική παράµετρος Το όνοµα των µεθόδων ή κατασκευαστών µαζί µε τις παραµέτρους (αριθµός, τύποι, σειρά) συνιστούν την υπογραφή τους Το σώµα αποτελείται από ένα ζεύγος αγκίστρων { και } µε δηλώσεις και εντολές, το οποίο καλείται γενικότερα µπλοκ

Τοπικές Μεταβλητές 6 Μπορούν να δηλώνονται σε οποιοδήποτε σηµείο µιας µεθόδου ή ενός κατασκευαστή Χρήσιµες για προσωρινή αποθήκευση δεδοµένων ηλώνονται όπως και τα πεδία, χωρίς όµως τη λέξη κλειδί private από µπροστά int counter; boolean israining; Υποχρεωτική η ανάθεση τιµής πριν τη χρήση τους int x, y; // compiler error x = y + 1;

Υπερφόρτωση Ονόµατος 7 Υπερφόρτωση ονόµατος Μια τοπική µεταβλητή καθώς και µια τυπική παράµετρος επιτρέπεται να έχουν το ίδιο όνοµα µε ένα πεδίο Ο κανόνας του πλησιέστερου ορισµού Όταν χρησιµοποιούµε το όνοµα αυτό µέσα σε µια µέθοδο, τότε αναφερόµαστε στην τοπική µεταβλητή ή στην τυπική παράµετρο, και όχι στο πεδίο Αυτό συµβαίνει επειδή ο ορισµός τους είναι πιο κοντά στο σηµείο που χρησιµοποιείται το όνοµα Για τις τοπικές µεταβλητές λέµε ότι "κρύβουν" το πεδίο Πρόσβαση αποκτάµε µε τη λέξη κλειδί this this.name = name;

Κατασκευαστές 8 Η διαδικασία της σωστής αρχικής διαµόρφωσης των αντικείµενων καλείται και αρχικοποίηση Οι κατασκευαστές πρέπει να έχουν το ίδιο όνοµα µε την κλάση στην οποία ορίζονται Εκτελούνται κατά τη δηµιουργία ενός αντικειµένου Θέτουν αρχικές τιµές στα πεδία: σταθερές ή τιµές που µεταβιβάζονται στο αντικείµενο µέσω παραµέτρων από κάποιο σηµείο κώδικα που βρίσκεται έξω από το αντικείµενο Όλα τα πεδία αρχικοποιούνται αυτόµατα σε προκαθορισµένες τιµές, καλύτερα όµως αυτό να γίνεται ρητά σε κατασκευαστές

Μέθοδοι (1/2) 9 Κλήση µεθόδων Οι µέθοδοι µπορούν να κληθούν από άλλες µεθόδους (ή και από τον εαυτό τους) του ίδιου (εσωτερική κλήση) ή άλλου (εξωτερική κλήση) αντικειµένου Επιστροφή τιµής Μια µέθοδος προαιρετικά µπορεί να επιστρέψει µια τιµή µε την εντολή return Η εντολή return µπορεί να χρησιµοποιηθεί και χωρίς επιστρεφόµενη τιµή σε µεθόδους που δεν επιστρέφουν τιµή (void), οπότε και τερµατίζεται η εκτέλεση της µεθόδου

Μέθοδοι (2/2) 10 Μέθοδοι προσπέλασης (accessors) Επιστρέφουν πληροφορίες για την κατάσταση ενός αντικειµένου Κάνουν χρήση της εντολής return Μέθοδοι µετάλλαξης (mutators) Αλλάζουν την κατάσταση ενός αντικειµένου Συνήθως είναι τύπου void

Παραδείγµατα Μεθόδων 11 public static void main(string[] args) { } System.out.println("Καληµέρα!"); static double multiply(double x, double y) { } return x*y; public void printmessage() { } System.out.println("Καληµέρα!");

Υπερφόρτωση Μεθόδων/Κατασκ. 12 Τι είναι; Η ύπαρξη παραπάνω της µίας µεθόδων ή κατασκευαστών µε το ίδιο όνοµα (εξυπακούεται στους κατασκευαστές) αλλά διαφορετική υπογραφή Εξυπηρετεί την αρχή του πολυµορφισµού Παραδείγµατα System.out.println(3); System.out.println("Καληµέρα!"); public int add(int x, int y) { return x+y; } public double add(double x, double y) { return x+y; }

Πρόγραµµα Java 13 Τι είναι ένα πρόγραµµα Java Ένα σύνολο πολλών αντικειµένων της ίδιας και διαφορετικής κλάσης που αλληλεπιδρούν µεταξύ τους Θα πρέπει να υπάρχει µια εκτελέσιµη κλάση ηλαδή µια κλάση που να περιέχει µια µέθοδο µε την παρακάτω επικεφαλίδα public static void main(string[] args) Από αυτήν τη µέθοδο ξεκινάει η εκτέλεση του προγράµµατος Συνήθως εκεί δηµιουργείται το πρώτο αντικείµενο, από το οποίο ξεκινάει η δηµιουργία άλλων και η αλληλεπίδραση µαζί τους, τα οποία µε τη σειρά τους δηµιουργούν και αλληλεπιδρούν µε άλλα, κ.ο.κ.

Αντικείµενα 14 ηµιουργία αντικειµένων Επιτυγχάνεται µέσω του τελεστή new ηµιουργεί ένα νέο αντικείµενο µιας κλάσης Εκτελεί τον κατασκευαστή της κλάσης Π.χ. Student student = new Student("greg", 123); Εξωτερική κλήση µεθόδων Με χρήση του τελεστή. Π.χ. student.getaem();

Είδη Μεταβλητών 15 Μεταβλητές αντικειµένων Αποθήκευση της κατάστασης του αντικειµένου ιαφορετική τιµή για κάθε αντικείµενο Παράµετροι µεθόδων & κατασκευαστών Μεταβίβαση δεδοµένων σε µεθόδους & κατασκευαστές Τοπικές µεταβλητές µεθόδων & κατασκευαστών Αποθήκευση προσωρινής κατάστασης Μεταβλητές κλάσεων (στατικά πεδία) Ένα πεδίο κλάσης που δηλώνεται µε τη λέξη static Ένας χώρος στη µνήµη για όλα τα αντικείµενα

Εµβέλεια Μεταβλητής 16 Εµβέλεια µεταβλητής Καθορίζει το τµήµα το πηγαίου κώδικα από όπου µπορεί να προσπελαστεί η µεταβλητή Εµβέλεια ανά είδος µεταβλητής Η εµβέλεια ενός (private) πεδίου είναι ολόκληρος ο ορισµός της κλάσης στην οποία ανήκει Η εµβέλεια µιας παραµέτρου είναι το σώµα της µεθόδου ή του κατασκευαστή που ανήκει Η εµβέλεια µιας τοπικής µεταβλητής είναι από το σηµείο δήλωσης της µέχρι τη λήξη του block δήλωσης της ιαφορά µε C++ για block µέσα σε block: απαγορεύεται σε ένα block η δήλωση µεταβλητής µε ίδιο όνοµα µε µεταβλητή ενός προγόνου block

ιάρκεια Ζωής Μεταβλητής 17 ιάρκεια ζωής Περιγράφει για πόσο η µεταβλητή εξακολουθεί να υπάρχει ιάρκεια ζωής ανά είδος µεταβλητής Η διάρκεια ζωής ενός (private) πεδίου είναι ίδια µε τη διάρκεια ζωής του αντικειµένου στο οποίο ανήκει Η διάρκεια ζωής µιας παραµέτρου και µιας τοπικής µεταβλητής είναι ίδια µε τη διάρκεια της κλήσης της µεθόδου ή του κατασκευαστή που ανήκουν

Σταθερές Μεταβλητές 18 O ορισµός µιας µεταβλητής µπορεί να συνοδεύεται από την λέξη κλειδί final final int Χ=3; Αυτό σηµαίνει ότι Αν ανατεθεί τιµή στη µεταβλητή, αυτή η τιµή δεν µπορεί να αλλάξει Παράδειγµα final int Χ = 3; Χ = 5; // σφάλµα final int Υ; Υ = 5; Υ = 3; // σφάλµα

Πακέτο (Package) 19 Τι είναι Χώρος ονοµάτων (namespace) στον οποίο ανήκει µια συγκεκριµένη κλάση ήλωση πακέτου package <όνοµα> στην κορυφή του αρχείου Στο σύστηµα αρχείων αντιστοιχεί σε έναν φάκελο Ιεραρχία φακέλων αντιστοιχεί σε όνοµα πακέτου που προκύπτει µε διαχωρισµό των φακέλων µε "." package project.tools.printer Χρήση κλάσεων από πακέτα import java.io.* // δεν περιλαµβάνει κλάσεις υποπακέτων import java.io.file;

Χρησιµότητα Πακέτων 20 Οργάνωση κλάσεων που σχετίζονται µεταξύ τους Για απλά προγράµµατα θα µπορούσε να παραληφθεί Για πιο σύνθετα αρχίζει και γίνεται απαραίτητο Απόδοση ονόµατος σε ένα σύνολο κλάσεων ιαφορετικό µεταξύ τους, µε το Java API, µε κλάσεις άλλων προγραµµατιστών Όνοµα του project για "εσωτερικά" προγράµµατα Χρήση του domain name για ευρείας κατανάλωσης Π.χ. gr.auth.csd.project Έλεγχος πρόσβασης σε κλάση Πρόσβαση µόνο µέσα από το πακέτο εκτός και αν δηλωθεί public

Παράδειγµα 1α 21 package pkg1; class DefaultClass {} -------------------------------------------- package pkg1; public class PublicClass {} -------------------------------------------- package pkg1; public class ClassUsingDefault { public static void main(string[] args) { DefaultClass x = new DefaultClass(); } }

Παράδειγµα 1β 22 package pkg2; import pkg1.*; public class ClassUsingDefault { public static void main(string[] args) { DefaultClass x = new DefaultClass(); } } -------------------------------------------- package pkg2; import pkg1.*; public class ClassUsingPublic { public static void main(string[] args) { PublicClass x = new PublicClass(); } } ΣΦΑΛΜΑ

Έλεγχος Πρόσβασης σε Μέλη 23 public Προσβάσιµο από οποιοδήποτε κώδικα private Προσβάσιµο µόνο από µέλη της ίδιας τάξης protected Προσβάσιµο από κώδικα του πακέτου και από κάθε υποκλάση ακόµα και αν αυτή ανήκει σε άλλο πακέτο Default (χωρίς τιµή) Προσβάσιµο µόνο µέσα στο πακέτο της τάξης του