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

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

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

Δομές ελέγχου ροής προγράμματος

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

32-bit signed υποδιαστολής) Double διπλής ακρίβειας 64-bit signed Char unicode character 16-bit Boolean Boolean true or false

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

Στοιχειώδης προγραμματισμός σε C++

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

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

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

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

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

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

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

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

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

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

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

3. Εκφράσεις και έλεγχος ροής

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

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

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

Java sessions. Part 1 - Βασικά έννοιες - μέθοδοι

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

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

for for for for( . */

Γενικά (για τις γραπτές εξετάσεις)

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

Διαδικασιακός Προγραμματισμός

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός

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

a = 10; a = k; int a,b,c; a = b = c = 10;

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

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

Προγραμματισμός Διαδικτύου

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Διαδικασιακός Προγραμματισμός

Κεφάλαιο 1: Τα βασικά της Java

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C

3 ο Εργαστήριο Μεταβλητές, Τελεστές

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

Προγραμματισμός Ι (HY120)

Ειδικά Θέματα Προγραμματισμού

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Δομές ελέγχου & επανάληψης

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

ιαδικαστικός Προγραμματισμός

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Διαδικασιακός Προγραμματισμός

Υποστηρικτικό υλικό Σημειώσεις

Ψευδοκώδικας. November 7, 2011

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

Transcript:

Αντικειμενοστραφής Προγραμματισμός ΙΙ Java Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών Σχολή Τεχνολογικών Εφαρμογών ΤΕΙ Λάρισας Δρ. Νικόλαος Θ. Λιόλιος Αν. Καθηγητής

Java Μια αντικειμενοστραφής γλώσσα προγραμματισμού

Σύντομο Ιστορικό Η Java είναι δηµιούργηµα τηςsun MICROSYSTEMS. http://java.sun.com Πρωτοαναπτύχθηκε από τον James Gosling το 1990, για να χρησιµοποιηθεί σε έξυπνες συσκευές. Το αρχικό της όνοµα ήτανoak (βελανιδιά). Οι ιδιότητες της γλώσσας σύντοµα την έκαναν κατάλληλη για χρήση στο World Wide Web, ενώ το όνοµά της έγινε Java.

Εξοικείωση με το περιβάλλον Για να την χρησιμοποιήσουμε θα πρέπει να έχουμε εγκαταστήσει στον υπολογιστή μας την τρέχουσα έκδοση της Java Virtual Machine μαζί με το αντίστοιχο Java Development kit από το site της Sun http://java.sun.com

Ανεξαρτησία από μηχανή Όταν το World Wide Web εµφανίστηκε στο διαδίκτυο το 1993, παρουσιάστηκε η ανάγκη µιας γλώσσας η οποία να είναι platform independent (ανεξάρτητη πλατφόρµας). Η Java έχει δηµιουργηθεί να λειτουργεί σε πολλαπλά συστήµατα. Ο μεταγλωττιστής της Java δεν παράγει εκτελέσιμο κώδικα αλλά παράγει μία μορφή αρχείων γνωστή ως Java Bytecodes που δεν είναι εκτελέσιμη απευθείας από έναν υπολογιστή, αλλά εκτελείται από την εικονική μηχανή Java (Java Virtual Machine JVM).

H Εικονική Μηχανή της Java (The Java Virtual Machine - JVM)

Γιατί λοιπόν Java; Με την Java, ένα πρόγραμμα πλοήγησης του Web θα μπορούσε να έχει πάρα πολλές δυνατότητες. Οι προγραμματιστές θα μπορούσαν να γράψουν τις εφαρμογές τους (applets) μιαφοράκαιαυτέςμετάθα έτρεχαν σε οποιαδήποτε μηχανή, οπουδήποτε. Οι επισκέπτες σε σελίδες με δυνατότητες Java, θα μπορούσαν να χρησιμοποιήσουν το περιεχόμενο αυτών των σελίδων ανεξάρτητα του τύπου υπολογιστή ήτου προγράμματος πλοήγησης. Με τα applets σαν αρχικό σημείο εστίασης, η Java επέδειξε ένα νέο τρόπο για την διάθεση λογισμικού μέσω του Internet.

Λόγοι για να χρησιμοποιήσουμε τη Java Είναι σχεδιασμένη για το Internet. Προσφέρει εκτέλεση σε όλους τους υπολογιστές. Είναι μια πλούσια γλώσσα προγραμματισμού. Προσφέρει την ευελιξία της δυναμικής σύνδεσης.!

Μειονεκτήματα της Java Τα προγράμματα πλοήγησης ενδέχεται να μην μπορούν να εκτελέσουν το Applet μας. Αυτό διότι τα προγράμματα πλοήγησης ενδέχεται να μην είναι εφοδιασμένα με την τρέχουσα έκδοση της Java. Ο κώδικας που είναι μεταγλωττισμένος για μια συγκεκριμένη μηχανή είναι ταχύτερος από τον κώδικα που εκτελείται από ένα μεταφραστή (interpreter). Πάντως αξίζει να σημειωθεί ότι μία τεχνική που ονομάζεται Just-In Time μεταγλώττιση (JIT compilation) έχει βελτιώσει σημαντικά τους χρόνους εκτέλεσης των Java προγραμμάτων. Tα προγράμματα της Java δεν έχουν ικανοποιητική ταχύτητα εκτέλεσης σε σύγκριση με τον μεταγλωττισμένο κώδικα της C ή C++ ή C#

Το πρώτο απλό πρόγραµµα σεjava

Το πρώτο απλό πρόγραµµα σεjava Εκτέλεση του προγράµµατος:

Mεταβλητές (variables) και Σταθερές (constants) Οι μεταβλητές είναι οι θέσεις μνήμης στις οποίες ένα πρόγραμμα τοποθετεί τα δεδομένα του κατά τη διάρκεια της λειτουργίας του. θα μάθουμε: πως δηλώνουμε μεταβλητές ποιοι είναι οι τύποι των μεταβλητών πως πρέπει να είναι το όνομα μιας μεταβλητής ποια είναι η εμβέλεια της μεταβλητής.

Mεταβλητές (variables) και Σταθερές (constants) Η µεταβλητή είναι µια οντότητα η οποία µπορεί να παίρνει διαφορετικές τιµές. Επίσης δύναται να αλλάζει τιµές στη ροή του προγράµµατος. Για παράδειγµα, σκεφτείτε τις παρακάτω τέσσερις γραµµές: double a=1.35; int b=32; a = 7.5; b = 10; Η σταθερά είναι µια οντότητα της οποίας η τιµή δεν αλλάζει ποτέ. Κάθε σταθερά ορίζεται µία φορά στο πρόγραµµα. Οι σταθερές γράφονται συνήθως µε κεφαλαία γράµµατα. final int DAY=7; final double GRAVITY=9.81;

Παραστάσεις και εντολές Μία παράσταση είναι ένας συνδυασµός σταθερών, µεταβλητών, τελεστών ή και συναρτήσεων. Οι παραστάσεις χρησιµοποιούνται για να δηλώσουν υπολογισµούς. Για παράδειγµα, σκεφτείτε τις παρακάτω γραµµές: int a = 10; int b = 5; int c = (a+5)*b; Οόρος(a+5)*b αποτελεί µια παράσταση. Η µεταβλητή c λαµβάνει την τιµή 75. Μία εντολή είναι µια οδηγία η οποία τελειώνει µε ένα ερωτηµατικό. Στο προηγούµενο παράδειγµα ηγραµµή c = (a+5)*b; αποτελεί µια εντολή. Η τιµή 75 η οποία υπολογίζεται από την παράσταση (a+5)*b προσδίδεται στην µεταβλητή c.

Παραστάσεις και εντολές Παράδειγμα publicj class Variables { public static void main(string[] args) { int a=0; double b=0; System.out.println("a = " + a); System.out.println("b = " + b); a = 5; b = a + 7.13; } } System.out.println("a = " + a); System.out.println("b = " + b);

Ονόματα μεταβλητών Ένα πρόγραμμα Java αναφέρεται σε μία μεταβλητή με το όνομά της. Ένα όνομα μιας μεταβλητής θα πρέπει να ικανοποιεί τους ακόλουθους περιορισμούς: Πρέπει να είναι ένα έγκυρο αναγνωριστικό της Java αποτελούμενο από μία σειρά Unicode χαρακτήρων. Δεν πρέπει να είναι δεσμευμένη λέξη της Java (keyword) Δεν πρέπει να υπάρχει άλλο ίδιο όνομα μεταβλητής στην περιοχή εμβέλειας της μεταβλητής.

Στη Java συνηθίζονται τα ακόλουθα: Τα ονόματα των τάξεων ξεκινάνε με κεφαλαία γράμματα Τα ονόματα των μεταβλητών ξεκινάνε με πεζά γράμματα Στη περίπτωση που έχουμε αναγνωριστικόπολλώνλέξεωντότε ενώνουμε τις λέξεις γράφοντας με κεφαλαίο το πρώτο γράμμα κάθε λέξης: π.χ. averylongidentifier

Οι βασικοί τύποι δεδοµένων στη Java

Οι βασικοί τύποι δεδομένων στη Java Τύπος Μεγεθος σε bit Τιµές byte 8-128 έως 127 short 16-32768 έως 32767 int 32-2146473648 έως 2147483647 long 64-9223372036854775808 έως 9223372036854775807 float 32 ±1.40129846432481707x10-45 έως ±3.40282346638528860x10 38 double 64 ±4.94065645841246544x10-324 έως ±1.79769313486231570x10 308 char 16 Όλοι οι Unicode χαρακτήρες boolean false ή true

Παράδειγµα στους τύπους δεδοµένων Γράψτε ένα πρόγραµµα στο οποίο να δηλώσετε 8 µεταβλητές σύµφωνα µε τουςοκτώβασικούςτύπουςδεδοµένων που συναντάµε στην Java. ώστε τιµές σε αυτές τις µεταβλητές και στη συνέχεια τυπώστε τις.

Παράδειγµα στους τύπους δεδοµένων Η εκτέλεση του προγράµµατος είναι η ακόλουθη:

Τελεστές (operators) Οι τελεστές είναι σύμβολα τα οποία συμβολίζουν την τέλεση μιας λειτουργίας σε ένα, δύο ή και τρεις τελεστέους (operators). Υπάρχουν τρία είδη τελεστών ως προς τον αριθμό των τελεστέων στους οποίους επενεργούν: Μοναδιαίοι (unary) Τελεστές: Αυτοί επενεργούν σε ένα και μόνο τελεστέο. Για παράδειγμα ο τελεστής ++ αυξάνει κατά 1 τον τελεστέο του όπως στην έκφραση ++count. Δυαδικοί (binary) Τελεστές: Αυτοί επενεργούν σε δύο τελεστέους. Γιαπαράδειγμαοτελεστής+ της αριθμητικής πρόσθεσης απαιτεί δύο τελεστέους όπως στην έκφραση op1 + op2. Τριαδικοί (ternary) Τελεστές: Αυτοί επενεργούν σε τρεις τελεστέους. Η Java έχει μόνο ένα τέτοιο τελεστή την έκφραση if που είναι ο :?, όπως στην ακόλουθη έκφραση a>4?a-4:a=4

Οι βασικοί Τελεστές στη Java αριθµητικοί τελεστές Τελεστής Περιγραφή + Πρόσθεση - Αφαίρεση * Πολλαπλασιασµός / ιαίρεση % Υπόλοιπο

Οι βασικοί Τελεστές στη Java συσχετιστικοί τελεστές (relational) Τελεστής Περιγραφή > Μεγαλύτερο >= Μεγαλύτερο ή ίσο < Μικρότερο <= Μικρότερο ή ίσο == ίσο µε!= Δεν είναι ίσο µε

Οι βασικοί Τελεστές στη Java Λογικοί τελεστές Τελεστής Χρήση Περιγραφή && e1 && e2 true αν και η e1 και η e2 είναι true. H e2 δεν αποτιμάται αν η e1 είναι false. e1 e2 false αν και η e1 και η e2 είναι false. Η e2 δεν αποτιμάται αν η e1 είναι true!!e H λογική άρνηση της έκφρασης e Όπου e1, e2 και e είναι εκφράσεις τύπου boolean

Οι βασικοί Τελεστές στη Java Τους συσχετιστικούς τελεστές, τους τελεστές ισότητας και τους λογικούς τελεστές τους συναντάµε κυρίως στις εντολές if, for, while, do. Οι παραπάνω τελεστές χρησιµοποιούνται για συγκρίσεις µεταξύ αριθµών, µεταβλητών και παραστάσεων. Εάν η σύγκριση είναι αληθής τότε το αποτέλεσµα είναι true διαφορετικά εάν είναι ψευδής τότε το αποτέλεσµα είναιfalse.

Οι βασικοί Τελεστές στη Java Τελεστές πράξεων με bit Τελεστής Χρήση Περιγραφή >> n1 >> n2 Κάνει ολίσθηση n2 bits δεξιά στο n1 << n1 << n2 Κάνει ολίσθηση n2 bits αριστερά στο n1 >>> n1 >>> n2 Το ίδιο με τον >> αλλά χωρίς το πρόσημο & n1 & n2 Δυαδικό ΚΑΙ των n1 και n2 n1 n2 Δυαδικό Ή των n1 και n2 ^ n1 ^ n2 Αποκλειστικό Η (XOR) των n1 και n2 ~ ~n Δυαδικό συμπλήρωμα ως προς ένα του n

Οι βασικοί Τελεστές στη Java Τελεστές πράξεων με bit Οι παραπάνω τελεστές αφορούν πράξεις σε επίπεδο bits. Οι τελεστές &,, ^ και ~ αντιστοιχούν στις απλές πράξεις της άλγεβρας Boole. Οι τελεστές >> και << προκαλούν ολίσθηση στα δεξιά και στα αριστερά αντίστοιχα. Έτσι για παράδειγµα εάνηµεταβλητή a είναι ο δυαδικός αριθµός 01101000 τότε η παράσταση: b = a >> 2; δίνει στη µεταβλητή b την τιµή 00011010

Οι βασικοί Τελεστές στη Java O τελεστής αύξησης και ο τελεστής µείωσης Τελεστής Χρήση Περιγραφή ++ a++ ή ++a Τελεστής αύξησης κατά 1 -- a - ή --a Τελεστής µείωσης κατά 1 Οι τελεστές ++ και -- χρησιµοποιούνται όταν θέλουµε να προσθέσουµε ήνααφαιρέσουµε το1 από µία µεταβλητή. Έτσι το ++a; ισοδυναµεί µε τοa=a+1; ενώ το --a; ισοδυναµεί στο a=a-1; Oι τελεστές ++ και -- µπορούν να χρησιµοποιηθούν είτε ως προθεµατικοί τελεστές (δηλ. πριν την µεταβλητή, όπως ++a ή--a) είτε ως µεταθεµατικοί (δηλ. µετά την µεταβλητή, όπως a++ ή a--).

Οι βασικοί Τελεστές στη Java O τελεστής αύξησης και ο τελεστής µείωσης Στην παράσταση ++a η τιµή τουa αυξάνει πριν χρησιµοποιηθεί η τιµή του. Στην παράσταση a++ η τιµή τουa αυξάνει αφού χρησιµοποιηθεί η τιµή του. Παράδειγµα: Έτσι έστω ότι τo a ισούται µε 5 a = 5; τότε η παράσταση b = a++; δίνει στο b την τιµή 5 ενώ η παράσταση b=++a; την τιµή 6. Το a και στις δύο περιπτώσεις γίνεται 6.

Οι βασικοί Τελεστές στη Java Τελεστής καταχώρισης τιμής Τελεστής Περιγραφή = Τελεστής καταχώρησης τιμής Ο τελεστής καταχώρισης τιμής σε μεταβλητή είναι ο =. Ο = αποδίδει την τιμή της έκφρασης στα δεξιά του στη μεταβλητή που βρίσκεται στα αριστερά του, όπως στην εντολή: x = y+10; όπου θα υπολογιστεί η έκφραση y+10 και στη συνέχειαθακαταχωρηθείητιμήαυτήστη μεταβλητή x.

Οι βασικοί Τελεστές στη Java Άλλοι τελεστής καταχώρισης τιμής Τελεστής Περιγραφή += Τελεστής πρόσθεσης και αντιστοίχησης -= Τελεστής αφαίρεσης και αντιστοίχησης *= Τελεστής πολ/µου και αντιστοίχησης /= Τελεστής διαίρεσης και αντιστοίχησης %= Τελεστής υπολοίπου και αντιστοίχησης Το a += b; ισοδυναμεί με το a = a+b; Το a -= b; ισοδυναμεί με το a = a-b; Το a *= b; ισοδυναμεί µε το a = a*b; Το a /= b; ισοδυναμεί µε το a = a/b; Το a %= b; ισοδυναμεί µε το a = a %b;

Οι βασικοί Τελεστές στη Java Άλλοι τελεστής καταχώρισης τιμής Τελεστής Περιγραφή += Τελεστής πρόσθεσης και αντιστοίχησης -= Τελεστής αφαίρεσης και αντιστοίχησης *= Τελεστής πολ/µου και αντιστοίχησης /= Τελεστής διαίρεσης και αντιστοίχησης %= Τελεστής υπολοίπου και αντιστοίχησης Το a += b; ισοδυναμεί με το a = a+b; Το a -= b; ισοδυναμεί με το a = a-b; Το a *= b; ισοδυναμεί µε το a = a*b; Το a /= b; ισοδυναμεί µε το a = a/b; Το a %= b; ισοδυναμεί µε το a = a %b;

Οι βασικοί Τελεστές στη Java Άλλοι τελεστές απόδοσης τιμής Αντίστοιχη σημασία έχουν και οι τελεστές: &= = ^= <<= >>= >>>= που είναι τελεστές πράξεων με bits και ταυτόχρονη ανάθεση τιμής

Συµβολοσειρές (Strings) Χαρακτήρες char c= A ; Οι συµβολοσειρές είναι ακολουθίες χαρακτήρων String teil= T.E.I. of Larisa ; Μια συµβολοσειρά στην Java είναι ένα αντικείµενο της τάξης String. Εµφάνιση συµβολοσειρών. Μέθοδος println() µε αλλαγή γραµµής στην εκτύπωση System.out.println(teil); System.out.println( T.E.I. of Larisa ); //Αλλαγή γραµµής στη εκτύπωση

Συµβολοσειρές (Strings) Εµφάνιση συµβολοσειρών. Μέθοδος print() χωρίς αλλαγή γραµµής στην εκτύπωση System.out.print("T.E.I."); System.out.print(" of "); System.out.println("Larisa"); Συνένωση συµβολοσειρών String teil = teil + cs Department ; Ησυµβολοσειρά teil περιέχει το Τ.Ε.Ι. Of Larisa cs Department

Συµβολοσειρές (Strings) Έστω οι συµβολοσειρές s1 και s2. Μέθοδος s1.length() s2=s1.touppercase() s2=s1.tolowercase() s2.equals(s1) int a=s2.indexof(s1); Ενέργεια Προσδιορισµός µήκους συµβολοσειράς s1 Μετατροπή συµβολοσειράς s1 σε κεφαλαία Μετατροπή συµβολοσειράς s1 σε πεζά Σύγκριση συµβολοσειρών s1 και s2 Αναζήτηση συµβολοσειράς s2 στην s1 a η θέσητηςs2 στην s1

Παράδειγµα στιςσυµβολοσειρές Γράψτε ένα πρόγραµµα στο οποίο να ορίσετε µία συµβολοσειρά και να αποθηκεύσετε σε αυτή την φράση T.E.I. of Larisa. Τυπώστε την συµβολοσειρά και τον αριθµό των χαρακτήρων που περιέχει. Κατασκευάστε µια νέα συµβολοσειρά που να περιέχει την προηγούµενη και επιπλέον την φράση cs Department. Τυπώστε την νέα συµβολοσειρά και τον αριθµό τωνχαρακτήρωνπουπεριέχει. ηµιουργήστε από τις παραπάνω συµβολοσειρές δύο νέες οι οποίες να περιέχουν τις ίδιες φράσεις στα κεφαλαία. Τυπώστε όλες τις συμβολοσειρές

Δομές ελέγχου ροής προγράμματος Υπάρχουν δύο είδη δομών ελέγχου ροής (control flow): Οι δομές επιλογής και Οι δομές επανάληψης

Δομές ελέγχου ροής προγράμματος Είδος δομής Δομές επιλογής Δομή ελέγχου ροής if-else switch-case for Δομές επανάληψης while do-while

Ηδομήεπιλογήςif-else Η εντολή if μας βοηθάει στον έλεγχο μίας λογικής έκφρασης (της συνθήκης) και αν είναι αληθής εκτελούνται μία ή περισσότερες εντολές ενώ αν είναι ψευδής δεν εκτελούνται. Αν οι εντολές είναι περισσότερες από μία τότε θα πρέπει οι εντολές να περικλειστούν ανάμεσα από άγκιστρα (τα οποία ομαδοποιούν εντολές). Το συντακτικό της εντολής if είναι το ακόλουθο: if (συνθήκη) εντολή ή ομάδα-εντολών π.χ. if (x!= 0) { System.out.println("To x δεν είναι 0"); y=1/x; }

Ηδομήεπιλογήςif-else Ηεντολήif έχει επίσης και τη φράση else με την οποία επιτρέπεται η εκτέλεση μίας ομάδας εντολών εναλλακτικά αν δεν ισχύει η συνθήκη. Φυσικά μπορούμε να έχουμε και εμφωλευμένα if δηλαδή if μέσα σε άλλα if όσες φορές θέλουμε. if (συνθήκη) ομάδα-εντολών-1 else ομάδα-εντολών-2 π.χ. if (x!=0) { System.out.println("Το x δεν είναι 0"); y=1/x; } else { System.out.println("Το x είναι 0"); y=0; }

Παράδειγμα επιλογής if-else class IfExample { public static void main(string args[]) { int x=1, y; if (x!= 0) { System.out.println("Το x δεν είναι 0"); y=1/x; } else { System.out.println("Το x είναι 0"); y=0; } } }

Ηδομήεπανάληψηςfor Ηεντολήfor είναι χρήσιμη για την επανάληψη μιας σειράς εντολών όταν είναι γνωστό εκ των προτέρων πόσες φορές θέλουμε να επαναληφθούν. Η γενική μορφή της for είναι η ακόλουθη: for (αρχικοποίηση; τερματισμός; αύξηση) εντολή ή { ομάδα εντολών };

Παράδειγμα επανάληψης for Για παράδειγμα το ακόλουθο τμήμα κώδικα εμφανίζει στην οθόνη τους αριθμούς από το 1 μέχρι το 10:... for (int i=1; i<=10; i++) System.out.println(i);...

Ηδομήεπανάληψηςwhile Ηεντολήfor που είδαμε προηγουμένως είναι κατάλληλη όταν γνωρίζουμε πόσες επαναλήψεις θα γίνουν. Αν δεν γνωρίζουμε πόσες επαναλήψεις θα γίνουν μία καλύτερη εντολή είναι η while.

Η δομή επανάληψης while H while έχει την ακόλουθη γενική μορφή: while (συνθήκη) εντολές; Η εντολή ή εντολές που ακολουθούν το while θα εκτελεστούν όσο η συνθήκη είναι αληθής. Ο βρόχος δηλαδή θα τερματιστεί όταν η συνθήκη - που είναι μία boolean έκφραση - γίνει ψευδής

Παράδειγμα επανάληψης while boolean found = false; int i=0, x=5; while (!found && i!=10) if (i == x) found = true; else i = i+1; System.out.println( Βρέθηκε μετά από + i + βήματα );

Η δομή επανάληψης do-while Υπάρχουν κάποιες περιπτώσεις στις οποίες θα θέλαμε οι εντολές μέσα στο βρόχο να εκτελεστούν τουλάχιστον μία φορά και στη συνέχεια να ελεγχθεί η συνθήκη εξόδου. Σ αυτές τις περιπτώσεις προτιμάται η χρήση της dowhile αντί της while.

Η δομή επανάληψης do-while Η do-while έχει την ακόλουθη γενική μορφή: do εντολές; while (συνθήκη); Στην do-while πρώτα εκτελούνται οι εντολές και στη συνέχεια ελέγχεται η συνθήκη. Ο βρόχος τερματίζεται αν η συνθήκη βρεθεί ψευδής.

Παράδειγμα επανάληψης do-while... int c; Reader in;... do { c = in.read();... } while (c!= 1);...

Η δομή επιλογής switch-case Όταν οι εναλλακτικές περιπτώσεις που πρέπει να ελέγξουμε με την if είναι πάρα πολλές και αφορούν τον έλεγχο για ισότητα της τιμής μιας μεταβλητής ή μιας έκφρασης με κάποιες τιμές προτιμάται η switch-case η οποία έχει την ακόλουθη γενική μορφή: switch (έκφραση) { case τιμή-1: εντολές-1; [break;] case τιμή-ν: εντολές-ν; [break;] [default: εντολές; [break;]] }

Παράδειγμα επιλογής switch-case... switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numdays = 31; break; case 4: case 6: case 9: case 11: numdays = 30; break; case 2: if ( ((year % 4 == 0) &&!(year % 100 == 0)) (year % 400 == 0) ) numdays = 29; else numdays = 28; }... break;

Εντολές διακλάδωσης Η Java έχει τρεις εντολές διακλάδωσης οι οποίες είναι βολικές σε αρκετές περιπτώσεις και ιδιαίτερα με τις επαναληπτικές δομές που έχουμε συζητήσει. Οι εντολές διακλάδωσης είναι οι: break, continue και return

Παράδειγμα Εντολής διακλάδωσης int i,k=7; boolean found = false; for (i=0; i<10; i++) if (k == i) { found = true; break; } System.out.println( Έγιναν + i + επαναλήψεις );

Ηχρήσητηςcontinue Η χρήση της continue μέσα σε ένα βρόχο προκαλεί την άμεση αποτίμηση και πάλι της συνθήκης εξόδου. Για να γίνει αυτό στις εντολές for και while ο έλεγχος μεταφέρεται στη πρώτη γραμμή του βρόγχου ενώ στο dowhile στη τελευταία. Στη συνέχεια αποτιμάται και πάλι η συνθήκη τερματισμού και η επαναληπτική διαδικασία τερματίζεται ή συνεχίζεται ανάλογα με την τιμή της συνθήκης (true ή false) ως συνήθως.

Οι εντολές break και continue Οι εντολές break και continue έχουν και μία μορφή για ετικέτες (labeled break και labeled continue) που δεν θα συζητήσουμε εδώ μια και στη πράξη οι ετικέτες δεν χρησιμοποιούνται αφού οι υπόλοιπες δομές που είδαμε αρκούν για όλες τις πιθανές χρήσεις, χωρίς να εμφανίζουν πολλά από τα προβλήματα που πιθανώς να εμφανιστούν με την χρήση των ετικετών. Η συζήτηση για την εντολή return αναβάλλεται μέχρι να συζητήσουμε για τις μεθόδους των τάξεων σε επόμενα μαθήματα.

Πίνακες Οι πίνακες, όπως και στις άλλες γλώσσες προγραμματισμού, είναι δομές δεδομένων για την συλλογή και διαχείριση δεδομένων του ιδίου τύπου. Η διαφορά με τις περισσότερες από τις άλλες γλώσσες είναι ότι οι πίνακες στη Java είναι αντικείμενα και έχουν και ιδιότητες όπως η length που μας δείχνει ποιο είναι το μέγεθος ενός πίνακα.

Δήλωση και δημιουργία πινάκων Η δήλωση ενός πίνακα γίνεται ως εξής: τύπος[] όνομα; ή τύπος όνομα[]; όπως για παράδειγμα στην ακόλουθη δήλωση: int[] arrayofints; ή int arrayofints[]; που δηλώνει ένα πίνακα ακεραίων με το όνομα arrayofints.

Δήλωση και δημιουργία πινάκων Η δήλωση του πίνακα δεν αρκεί για τη χρησιμοποίησή του. Γι αυτό θα πρέπει να δεσμευτεί ο χώρος μνήμης που απαιτείται για τον πίνακα. Αυτό γίνεται ως εξής: τύπος όνομα[] = new τύπος[μέγεθος]; όπως για παράδειγμα στην ακόλουθη δήλωση: int arrayofints[] = new int[10]; που δημιουργεί ένα πίνακα 10 ακεραίων με το όνομα arrayofints.

Δήλωση και δημιουργία πινάκων Η δημιουργία του πίνακα δεν είναι απαραίτητο να γίνει ταυτόχρονα με την δήλωσή του μπορεί να γίνει και αργότερα, όπως δείχνει το ακόλουθο τμήμα κώδικα: int arrayofints[];... arrayofints = new int[10];... Σε κάθε περίπτωση πάντως δεν επιτρέπεται η αναφορά σε στοιχεία του πίνακα πριν να δημιουργηθεί ο πίνακας με την εντολή new.

Δήλωση και δημιουργία πινάκων Η αποθήκευση στοιχείων στον πίνακα μπορεί να γίνει ταυτόχρονα με την δήλωσή του, όπως δείχνει το ακόλουθο τμήμα κώδικα: double arrayofnumbers[] = {3.1, 2.219, 3.55, 6.1};

Παράδειγμα Χρήσης πινάκων Το ακόλουθο τμήμα κώδικα δημιουργεί ένα πίνακα 10 ακεραίων και στη συνέχεια τοποθετεί μέσα σ αυτόν τους ακεραίους από το 0 μέχρι το 9.... int arrayofints[] = new int[10]; for (int i=0; i<10; i++) arrayofints[i] = i;...

Παράδειγμα Χρήσης πινάκων Το ακόλουθο τμήμα κώδικα εμφανίζει τα στοιχεία που βρίσκονται στο πίνακα arrayofints. Παρατηρείστε τη χρήση της ιδιότητας length για να αναφερθούμε στο μήκος του πίνακα:... for (int i=0; i<arrayofints.length; i++) System.out.println(arrayOfInts[i]);...

Πίνακες περισσοτέρων διαστάσεων Στη Java μπορείτε να έχετε πίνακες δύο, τριών, τεσσάρων κλπ διαστάσεων. Στη πράξη όμως σπάνια συναντούμε περιπτώσεις στις οποίες η χρήση πινάκων που έχουν περισσότερες από τρις διαστάσεις.

Παράδειγμα χρήσης Πίνακα δύο διαστάσεων class Array2 { public static void main(string[] args) { int marks[][] = new int[3][10]; for (int i=0; i<marks.length; i++) { for (int j=0; j<marks[i].length; j++) } } } { marks[i][j] = i*j; System.out.print(marks[i][j]+" "); } System.out.println();

Συμβολοσειρές (Strings) Μία συμβολοσειρά είναι μία σειρά από χαρακτήρες. Στη Java μία συμβολοσειρά υλοποιείται με τη τάξη String του πακέτου java.lang. Ένα String είναι ένα αντικείμενο και όπως όλα τα αντικείμενα πρέπει να δηλωθεί και να δημιουργηθεί με την εντολή new, όπως στο παράδειγμα: String s = new String(); Εναλλακτικά μπορούμε να δημιουργήσουμε ένα String αν του αποδώσουμε μία τιμή που θα είναι μία σταθερά συμβολοσειρά, όπως στο παράδειγμα: String s = "George";

Οι παράμετροι της main Όπως ήδη θα έχετε παρατηρήσει στη μέθοδο main περνιέται σαν παράμετρος ένας πίνακας από String που το ονομάσαμε args. Αυτός ο πίνακας είναι μία σειρά παράμετροι που μπορούν να περαστούν στην εφαρμογή όταν τη ξεκινάμε, ως εξής: java <όνομα-τάξης> <παράμετρος-0> <παράμετρος-ν> π.χ. java CheckUser Master

Παράδειγμα με παραμέτρους στη main class CheckUser { public static void main(string[] args) { if (args[0].equals("master")) { System.out.println("Welcome Master!"); //Kane kati epitrepto mono gia //tous Masters } else System.out.println( Unauthorized User! ); } }

Εμβέλεια μεταβλητών (scope) Η εμβέλεια μίας μεταβλητής είναι η περιοχή εκείνη του προγράμματός μας στην οποία η μεταβλητή είναι ορατή και καθορίζει πότε η μεταβλητή δημιουργείται και καταστρέφεται. Υπάρχουν τέσσερα ήδη μεταβλητών με αντίστοιχα τέσσερις περιοχές εμβέλειας: Μεταβλητές μέλη με εμβέλεια την τάξη Τοπικές μεταβλητές με εμβέλεια την ομάδα εντολών στην οποία δηλώνονται Παράμετροι μεθόδων με εμβέλεια την μέθοδο μέσα στην οποία δηλώνονται, και Παράμετροι χειριστών εξαιρέσεων με εμβέλεια την ομάδα εντολών του χειριστή εξαιρέσεων

Η εμβέλεια των μεταβλητών φαίνεται πιο παραστατικά στην παρακάτω εικόνα:

Java Applets Τί είναι ένα Java Applet Τα Java Applets είναι προγράμματα Java τα οποία είναι σχεδιασμένα για να εκτελούνται από ένα πρόγραμμα πλοήγησης (browser). Για λόγους διευκόλυνσης των προγραμματιστών, η Sun παρέχει με κάθε JDK (Java Development Kit) και ένα πρόγραμμα εκτέλεσης των Applets το οποίο λέγεται appletviewer. Κάθε Applet θα πρέπει να επεκτείνει την τάξη java.applet.applet και να υλοποιεί κάποιες μεθόδους (τουλάχιστον τη μέθοδο paint). Γιαναεκτελέσουμεέναapplet μέσα από ένα browser ήαπότον appletviewer θα πρέπει να συμπεριλάβουμε την τάξη του applet σε μια HTML σελίδα χρησιμοποιώντας το tag <Applet>. Στη συνέχεια μπορούμε να φορτώσουμε τη σελίδα στο browser ή να δώσουμε appletviewer <όνομα HTML αρχείου> για να δούμε το Applet να εκτελείται

Παράδειγμα Java Applet Το java πρόγραμμα είναι το ακόλουθο: import java.applet.applet; import java.awt.graphics; public class HelloWorldApplet extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); } } To HTML αρχείο είναι το ακόλουθο: <applet code="helloworldapplet.class" width=300 height=300> </applet> Γιαναεκτελέσουμετοapplet θα πρέπει να φορτώσουμε την HTML σελίδα είτε σε ένα browser (π.χ. τον Internet Explorer) ή να εκτελέσουμε το applet με τον

Τάξεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Ηχρήσητουthis και του super

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

Κλάσεις Αντικείµενα Στον αντικειµενοστραφή προγραµµατισµό δηµιουργούµε τις κλάσεις. Οι κλάσεις χρησιµοποιούνται ως πρότυπα για την δηµιουργία των αντικειµένων. Ιδιότητες : Περιγράφουν το αντικείµενο και δείχνουν σε τι διαφέρει σε σχέση µε τα άλλα αντικείµενα. Συµπεριφορά : Είναι τα όσα κάνει ένα αντικείµενο.

Ιεραρχία κλάσεων Οι κλάσεις οργανώνονται σε ιεραρχίες κλάσεων µε µορφή πυραµίδας. Με αυτόν τον τρόπο επιτυγχάνεται η κληρονοµικότητα (inheritance) στον αντικειµενοστραφή προγραµµατισµό.

Κλάσεις Αντικείµενα Γενικό διάγραµµα κλάσης: public class ΟνοµαΚλασης { int a=10; double b; public String name= Panos ; private double x, y; public method_1( ) {.. }.. public method_n( ) {.. } Μεταβλητές (Ιδιότητες) Μέθοδοι (Συμπεριφορά) }

Κλάσεις Αντικείµενα Παράδειγµα δηµιουργίας αντικειµένου µε τοnew: ΟνοµαΚλασης ονοµααντικειµένου = new ΟνοµαΚλασης(); Η πρόσβαση των κλάσεων καθορίζεται από τα παρακάτω: public: Είναι προσβάσιµη από κάθε άλλη κλάση. final: εν µπορούν να ορισθούν υποκλάσεις της.

Ιδιότητες (Μεταβλητές) Οι ιδιότητες ενός αντικειµένου αντιπροσωπεύουν τις µεταβλητές που χρειάζονται για να λειτουργήσει ένα αντικείµενο. Πρόσβαση µεταβλητών: public : protected : private : final : static : Έλλειψη δήλωσης : Είναι προσβάσιµη από κάθε άλλη κλάση. Είναι προσβάσιµη µόνο µέσα από τη δική της κλάση και από τιςυποκλάσειςτης. Είναι προσβάσιµη µόνο µέσα από τη δική της κλάση Είναι σταθερά η οποία αρχικοποιείται µόνο αρχικά και δεν αλλάζει τιµή. Κοινή µεταβλητή για όλα τα αντικείµενα της κλάσης (Μεταβλητή κλάσης). Χρησιµοποίηση µόνο µέσα από τη δική της κλάση και από κλάσεις στο ίδιο πακέτο.

Ιδιότητες (Μεταβλητές) Τρόπος πρόσβασης μεταβλητής ενός αντικειμένου. public class TestClass{ public int a=10; public String b = test! ; } TestClass x = new TestClass(); x.a x.b Οακέραιος10 Η συµβολοσειρά test

Συµπεριφορά (Μέθοδοι) Η συµπεριφορά περιγράφει τα διάφορα τµήµατα µιας κλάσης που εκτελούν συγκεκριµένες εργασίες. Καθένα από αυτά τα τµήµατα ονοµάζεται µέθοδος. Πρόσβαση µεθόδων public : protected : private : final : static : native : Είναι προσβάσιµη από κάθε άλλη κλάση. Είναι προσβάσιµη µόνο µέσα από τη δική της κλάση και από τις υποκλάσεις της. Είναι προσβάσιµη µόνο µέσα από τη δική της κλάση εν µπορεί να επικαλυφθεί (override) από κάποια υποκλάση. Είναι κοινή σε όλες τις θυγατρικές. Το σώµα της εκτελείται σε άλλη γλώσσα προγραµµατισµού.

Συµπεριφορά (Μέθοδοι) Τρόπος πρόσβασης µιας µεθόδου ενός αντικειµένου. public class TestClass{.. public void printname(string name) { System.out.println(name); }.. Απλή Κλάση } TestClass x = new TestClass(); x.printname( Panos ); Εκτύπωση του Panos µέσω της µεθόδου printname() του αντικειµένου x.

ηµιουργία τυπικής κλάσης public class ΟνοµαΚλασης { }

Συµπεριφορά (Μέθοδοι) Βασικές κατηγορίες µεθόδωνγιατηνδηµιουργία κλάσεων: Μέθοδοι Kατασκευής (Constructors). Ηδηµιουργία ενός αντικειµένου γίνεται µε την χρήση της δήλωσης new. Παράδειγµα: TestClass x = new TestClass(); Ηδήλωσηnew καλεί µια ειδική µέθοδο της κλάσης του αντικειµένου η οποία ονοµάζεται µέθοδος κατασκευής γιατί αναλαµβάνει την εργασία που απαιτείται για την δηµιουργία του αντικειµένου. Μία κλάση µπορεί να περιέχει και περισσότερες από µία µεθόδους κατασκευής. Όλες φέρουν το όνοµα της κλάσης. Εάν δεν περιλαµβάνονται µέθοδοι κατασκευής σε µία κλάση, αυτή θα κληρονοµήσει µια µέθοδο κατασκευής χωρίς ορίσµατα από την υπερκλάση της.

Συµπεριφορά (Μέθοδοι) Μέθοδοι πρόσβασης (Accesors). Είναι απλές µέθοδοι οι οποίες επιστρέφουν τιµές των βασικών µεταβλητών ενός αντικειµένου. Οι µέθοδοι πρόσβασης µπορούν να παραληφθούν όταν οι µεταβλητές είναι public. Καλό όµως είναι να αποφεύγουµε τιςpublic µεταβλητές και να χρησιµοποιούµε µεθόδους πρόσβασης. Μέθοδοι ελέγχου ισότητας αντικειµένων (equals). Αποτελούν βασικές µεθόδους οι οποίες ελέγχουν εάν δύο αντικείµενα µιας κλάσης είναι ίσα µεταξύ τους. Κατά την ανάπτυξή τους πρέπει να λαµβάνονται υπ όψη όλες οι ιδιότητες και συµπεριφορές των αντικειµένων.

Συµπεριφορά (Μέθοδοι) Μέθοδος εκτύπωσης αντικειµένου (tostring()). Υπάρχει µια ειδική µέθοδος στη Java για την εκτύπωση ενός αντικειµένου public String tostring() {. } Με αυτόν τον τρόπο είναι δυνατή η εκτύπωση ενός αντικειµένου µέσω της µεθόδου println().

Παράδειγµα 1 µε κλάση ηµιουργήστε µια κλάση αντικειµένων Point η οποία να περιγράφει σηµεία στο επίπεδο. Να περιλαµβάνει µια µέθοδο κατασκευής, τις µεθόδους πρόσβασης στις συντεταγµένες x και y του σηµείου, µια µέθοδο ελέγχου ισότητας δύο αντικειµένων και µια µέθοδο εκτύπωσης ενός αντικειµένου. Στη συνέχεια γράψτε ένα πρόγραµµα στο οποίο να χρησιµοποιήσετε την κλάση που φτιάξατε και να δηµιουργήσετε δύο σηµεία στο επίπεδο. Με την βοήθεια των δύο αυτών σηµείων να ελέγξετε την κλάση των αντικειµένων που δηµιουργήσατε.

Παράδειγµα 1 µε κλάση

Παράδειγµα 1 µε κλάση

Παράδειγµα 1 µε κλάση

Κληρονοµικότητα Κληρονοµικότητα (inheritance) είναι ο τρόπος µε τον οποίο ένα αντικείµενο µπορεί να κληρονοµήσει ιδιότητες και συµπεριφορά από άλλα αντικείµενα, που είναι όµοια µε αυτό. Μέσω της κληρονοµικότητας µπορούµε να δηµιουργήσουµε µια νέα κλάση αντικειµένων προσδιορίζοντας µόνο τα σηµεία εκείνα στα οποία αυτή διαφέρει από µια υπάρχουσα κλάση. class TestB extends TestA {. }

Κληρονοµικότητα Παράδειγµα: Το γενεαλογικό δένδρο της κλάσης JAPPLET

Κληρονοµικότητα Μέθοδοι επικάλυψης Όταν µια µέθοδος ορίζεται σε µια υποκλάση και στην υπερκλάση, χρησιµοποιείται η µέθοδος της υποκλάσης. Αυτό επιτρέπει σε µια υποκλάση να αλλάζει, να αντικαθιστά ή να καταργεί τελείως µέρος της συµπεριφοράς ή των ιδιοτήτων των υπερκλάσεων της. Ηδηµιουργία µιας νέας µεθόδου σε µια υποκλάση, έτσι ώστε να αλλάξει η συµπεριφορά που κληρονοµήθηκε από µια υπερκλάση ονοµάζεται µέθοδος επικάλυψης (Overriding).

Κληρονοµικότητα Ηχρήσητουthis και του super Με τη λέξη this αναφερόµαστε σε µεταβλητές του τρέχοντος αντικειµένου µας. public class ΟνοµαΚλασης { private int a; public µεθοδοςα( int a){ this.a = 15;. } }

Κληρονοµικότητα Ηχρήσητουthis και του super Σε υποκλάσεις η λέξη this χρησιµοποιείται όταν θέλουµε να αναφερθούµε σεµεταβλητές και µεθόδους του τρέχοντος αντικειµένου µας.

Κληρονοµικότητα Ηχρήσητουthis και του super Η λέξη super χρησιµοποιείται όταν θέλουµε να αναφερθούµε σε µεταβλητές και µεθόδους της αµέσως προηγούµενης υπερκλάσης του αντικειµένου µας.

Κληρονοµικότητα Παράδειγµα 2 µε κλάση ηµιουργήστε µια κλάση αντικειµένων Student η οποία να περιγράφει φοιτητές. Ένας φοιτητής έχει το όνοµα τοεπώνυµό και τον αριθµό µητρώου του. Η κλάση που θα δηµιουργήσετε πρέπει να περιλαµβάνει µια µέθοδο κατασκευής, τις µεθόδους πρόσβασης στο όνοµα, το επώνυµό και τον αριθµό µητρώου του φοιτητή και µια µέθοδο εκτύπωσης ενός αντικειµένου. Στη συνέχεια να δηµιουργήσετε την κλάση JavaStudent η οποία να επεκτείνει την κλάση Student µε τον βαθµό κάθε φοιτητή στο µάθηµα τηςjava. Η νέα κλάση πρέπει να περιλαµβάνει µια µέθοδο κατασκευής, µια µέθοδο πρόσβασης στο βαθµό τουφοιτητήκαιµια µέθοδο εκτύπωσης ενός αντικειµένου. Στη συνέχεια γράψτε ένα πρόγραµµα στο οποίο να δηµιουργήσετε τέσσερα αντικείµενα της κλάσης JavaStudent. Εισάγετε κατάλληλα δεδοµένα σε αυτά και εκτυπώστε τα.

Κληρονοµικότητα Παράδειγµα 2 µε κλάση

Κληρονοµικότητα Παράδειγµα 2 µε κλάση

Κληρονοµικότητα Παράδειγµα 2 µε κλάση

Κληρονοµικότητα Παράδειγµα 2 µε κλάση