Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων. Εισαγωγή στη γλώσσα προγραµµατισµού. Java. Βασίλειος Βεσκούκης

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

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

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

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

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

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

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

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

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

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

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JAVA TUTORIAL ΠΕΡΙΕΧΟΜΕΝΑ. ΚΕΦΑΛΑΙΟ 1. Τί κάνει τη Java να ξεχωρίζει; Εγκαθιστώντας τη Java

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

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

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

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

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

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

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

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

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

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

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

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

ΕΠΛ 012. JavaScripts

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

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

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

B. Ενσωμάτωση Ιθαγενών Μεθόδων

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

2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι

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

Τύποι δεδομένων, τελεστές, μεταβλητές

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

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

Ευφυείς Τεχνολογίες ----Πράκτορες

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

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

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις

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

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

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

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Επισκόπηση γλώσσας προγραµµατισµού JAVA

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Δεδομένα, τελεστές, είσοδος/έξοδος

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

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

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

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

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

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

Transcript:

Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων Εισαγωγή στη γλώσσα προγραµµατισµού Java Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@unipi.gr v.vescoukis@cs.ntua.gr ιαλέξεις και εργαστήριο! ιαλέξεις " Πέµπτη 8.15 12.00, παλαιό κτίριο, αίθουσα 202! Εργαστήριο " ιατίθεται το εργαστήριο του τµήµατος σε όλες τις ώρες " έσµευση του εργαστηρίου για κάποιες ηµέρες που θα ανακοινωθούν για παρουσίαση ασκήσεων 1

Εισαγωγή στη Java! Χαρακτηριστικά του σύγχρονου computing " Τεχνικά " Επιχειρηµατικά! Απαιτήσεις που πρέπει να ικανοποιηθούν! Η γέννηση της Java! Εκτέλεση προγραµµάτων! Είδη προγραµµάτων! Παρουσίαση της γλώσσας! Συγγραφή προγραµµάτων! Βιβλιοθήκες Το σύγχρονο computing! Τεχνικά χαρακτηριστικά " Τα πάντα τρέχουν πάνω από δίκτυο " Τα συστήµατα είναι ανοµοιογενή και δεν είναι πάντα υπολογιστές " Οι πληροφορίες είναι κατανεµηµένες " Νέου τύπου εφαρµογές (ηλεκτρονικό εµπόριο κ.ά.) " Ανοιχτές αρχιτεκτονικές! Μη τεχνικά χαρακτηριστικά " Εντονος ανταγωνισµός για την επικράτηση: NT vs UNIX, Microsoft vs All " Κτήση και εκµετάλλευση τεχνολογίας " Καθορισµός αγοράς και «παικτών» που µπορεί να συµµετέχουν 2

Απαιτήσεις που πρέπει να ικανοποιηθούν! Ανοιχτή πλατφόρµα λειτουργίαςεφαρµογών! Υποστήριξη αντικειµενοστρεφούς τεχνολογίας! υνατότητα εύκολης µετάβασης και εκµάθησης! Κοινάαποδεκτάπρότυπα! ηµιουργία κοινοτήτων «ανοιχτού κώδικα»! Πλήρης ανεξαρτησία από το υλικό! Λειτουργία πάνω σε δίκτυο! Ασφάλεια Η γέννηση της Java! Από την εταιρία SUN, χωρίς να αποτελέσει αντικείµενο εµπορικής πατέντας! Η Java είναι " Απλή " Αντικειµενοστρεφής " Κατανεµηµένη " Ερµηνευόµενη (interpreted) " Συµπαγής: ισχυρό σύστηµα τύπων, πλήρης διαχείριση µνήµης " Ασφαλής " Ανεξάρτητη από αρχιτεκτονική # Μεταφέρσιµη 3

Η γέννηση της Java! Η Java είναι " Multi-threaded " Υποστηρίζει πολυµέσα " Υποστηρίζει κατανεµηµένες βιβλιοθήκες " υνατόν να ενσωµατωθεί σε web browser " Υψηλής απόδοσης...! Η Java σχετίζεται αλλά δεν ταυτίζεται µε την ανάπτυξη σελίδων Internet " Η δυνατότητα απόδοσης συµπεριφοράς σε σελίδες web... "...δεν σηµαίνει κατ ανάγκην «εφαρµογές πάνω από Internet» Μοντέλο εκτέλεσης προγραµµάτων Java 4

Μοντέλο εκτέλεσης προγραµµάτων Java Μοντέλο εκτέλεσης προγραµµάτων Java 5

Είδη προγραµµάτων Java! Αυτόνοµες εφαρµογές " Προγράµµατα που µπορούν να εκτελεστούν από τη γραµµή εντολών σε οποιοδήποτε περιβάλλον διαθέτει ένα Java Virtual Machine (JVM) " Ορισµός µιας κλάσης η οποία περιέχει µια µέθοδο µε το όνοµα main. Η εκτέλεση θα αρχίσει από αυτή την µέθοδο.! Applets " Εφαρµογές που εκτελούνται µέσα από έναν web browser τοπικά. " Αποτελούν εξειδίκευση της κλάσης Applet " Τα Applets περιέχουν µεθόδους που καθορίζουν τη συµπεριφορά τους σε συγκεκριµένα γεγονότα (events)! Servlets " Κλάσεις που εκτελούνται στο σηµείο όπου διατίθενται Hello World! Σε µορφή αυτόνοµης εφαρµογής public class HelloWorld { public static void main (String [] args) { System.out.println("Hello world!"); } }! Βήµα 2: > javac HelloWorld.java! Βήµα 3: > java HelloWorld 6

Hello World >type HelloWorld.java public class HelloWorld { public static void main (String [] args) { System.out.println("Hello world!"); } } >javac HelloWorld.java >java HelloWorld Hello world! >java helloworld Exception in thread "main" java.lang.noclassdeffounderror: helloworld (wrong nam e: HelloWorld) at java.lang.classloader.defineclass0(native Method) at java.lang.classloader.defineclass(unknown Source) at java.security.secureclassloader.defineclass(unknown Source) at java.net.urlclassloader.defineclass(unknown Source) at java.net.urlclassloader.access$100(unknown Source) at java.net.urlclassloader$1.run(unknown Source) at java.security.accesscontroller.doprivileged(native Method) at java.net.urlclassloader.findclass(unknown Source) at java.lang.classloader.loadclass(unknown Source) at sun.misc.launcher$appclassloader.loadclass(unknown Source) at java.lang.classloader.loadclass(unknown Source) at java.lang.classloader.loadclassinternal(unknown Source) Η γλώσσα Java! Σχόλια " Μεταξύ /* και */ σε πολλές γραµµές " Μετά από // σε µία γραµµή! Βασικοί τύποι Τύπος Περιγραφή Αρχική τιµή boolean Λογικές τιµές: trueή false false Char Χαρακτήρες, 16-bit Unicode '\0' Byte Ακέραιος αριθµός 8-bit 0 Short Ακέραιος αριθµός 16-bit 0 Int Ακέραιος αριθµός 32-bit 0 long Ακέραιος αριθµός 64-bit 0 float Αριθµός κινητής υποδιαστολής 32-bit 0.0 double Αριθµός κινητής υποδιαστολής 64-bit 0.0 7

Η γλώσσα Java! ηλώσεις όπως στη γλώσσα C " int x; double d1, d2; " int x = 1; double d1 = 3.14, d2 = -8.0;! Ειδικές σταθερές \n, \r, \b, \t, \, \, \f, \\! Οτύποςstring "Java" "Hello world!\n" "So long \"Java\" world...\n" Η γλώσσα Java Προτεραιότητα Τελεστής Περιγραφή 13 ++ -- Αύξηση / µείωση κατά 1 + - Πρόσηµο συν/ πλήν ~ Συµπλήρωµα bit προς bit! Λογική άρνηση ( type ) Μετατροπή τύπου 12 * / % Πολλαπλασιασµός, διαίρεση, υπόλοιπο 11 + - Πρόσθεση, αφαίρεση + Παράθεση συµβολοσειρών 10 << Αριστερή ολίσθηση 9 < > =< >= >> εξιά ολίσθηση µε επέκταση προσήµου >>> εξιά ολίσθηση χωρίς επέκταση προσήµου instanceof Αριθµητική σύγκριση Σύκριση τύπου 8

Η γλώσσα Java Προτεραιότητα Τελεστής Περιγραφή 8 ==!= Ισότητα, ανισότητα 7 & Σύζευξη, λογική ή bit προς bit 6 ^ Αποκλειστική διάζευξη, λογική ή bit προς bit 5 ιάζευξη, λογική ή bit προς bit 4 && Λογική σύζευξη υπό συνθήκη 3 Λογική διάζευξη υπό συνθήκη 2?: Εναλλακτική αποτίµηση υπό συνθήκη 1 = Εκχώρηση *= /* %= += -= <<= >>= >>>= &= ^= = Εκχώρηση µεπράξη Παράδειγµα! Μαθηµατικές εκφράσεις και αντίστοιχες εκφράσεις Java 9

Η γλώσσα Java! Εκφράσεις µε strings string a = "Αντικειµενοστρεφής σχεδιασµός και προγραµµατισµός"; string b = "Αντικειµενοστρεφής " + "σχεδιασµός"; int Year1=2000; int Year2=2001; string c = b + "(" + Year1+"-"+Year2+")"; string d = b + "\n\r" + "Ακαδ. έτος " + Year1+"-"+Year2 " c: Αντικειµενοστρεφής σχεδιασµός (2000-2001) " d: Αντικειµενοστρεφής σχεδιασµός Ακαδ. έτος 2000-2001 Η γλώσσα Java! Τελεστές bit short a = 10; a: 0000000000001010 " ~ = συµπλήρωµα " & = σύζευξη, = διάζευξη, ^ = αποκλειστική διάζευξη " >>, << = ολίσθηση! Λογικοί τελεστές "! = ΝΟΤ, & = AND, =OR " &&, 10

Η γλώσσα Java! Αποτίµηση λογικών εκφράσεων int a=5, b=10, c=0; (a > b) & (b < 100) (a < b) & (b > 0) (a < b) (a * b > 100) (a < b) ((b / c) > 100) (a < b) ((b / c) > 100) (a > b) && ((b / c) > 100) (a > b) ((b / c) > 100) Η γλώσσα Java! Ο τελεστής (λογική έκφραση)?[έκφραση 1] : [έκφραση 2] int a=5, b=10, c=0, d; d = (a > b)? 1 : 0 d = (c!= 0)? b / c : 0 d = (a < b)? a * b : b / c 11

Η γλώσσα Java! Εντολές, blockεντολών { int x = 1; double d = 3.14159; } if (x <= 5) { System.out.println(x); return d + 2.5; } else return 8.1 - d;! Εκφράσεις x = 1; a = flag? 5 + a : 8 + x; system.out.println("hello world!"); Η γλώσσα Java! Επιλογή 1 " if (συνθήκη) εντολή1; else εντολή2;! Επιλογή 2 " Switch (έκφραση) { case val1: εντολές 1; break; case val2: εντολές 2; break; default: εντολές; } //τέλος του switch 12

Η γλώσσα Java! Επανάληψη while " while (συνθήκη) εντολή;! Επανάληψη for " for (εντολή αρχικοποίησης; συνθήκη; εντολή1) εντολή2;! Επανάληψη do-while " do εντολή; while (συνθήκη); Η γλώσσα Java! οµή προγράµµατος ProgramName.java " ηλώσεις import " Ορισµός κλάσεων " Ορισµός ενεργού κλάσης public class ProgramName public static void main (String[ ] args) { // --- έναρξη εκτέλεσης --- } } // --- τέλος ορισµού κλάσης ProgramName --- 13

Η γλώσσα Java! Πακέτα (packages) " Οργάνωση των κλάσεων " Ευέλικτη κατάτµηση σε τµήµατα κώδικα (modularity)! Αναφορά σε πακέτα όνοµα πακέτου.όνοµα κλάσης java.io.file, java.io.*! Κάθε πακέτο ορίζει: " Interfaces " Κλάσεις " Exceptions " Errors Η γλώσσα Java! Ορισµός πακέτων package my_classes; public class window { }! Πότε ορίζουµε πακέτα; " Μετά από την αρχική συγγραφή του κώδικα ενός προγράµµατος " Προκειµένου να ελέγχουµε την ορατότητα και την επίλυση αναφορών " Τα πακέτα από τα οποία αποτελείται µια εφαρµογή λογισµικού, προκύπτουν κατά την αντικειµενοστρεφή ανάλυση και σχεδίαση 14

Η γλώσσα Java! Το πακέτο simpleio (work_path)\simpleio\simplegui.java Η γλώσσα Java! Μετατροπείς ορατότητας Μετατροπέας Οταν αφορά κλάση Οταν αφορά πεδίο ή µέθοδο private - ορατότητα µόνο µέσα από την κλάση που δηλώνεται package (default) Επιτρέπει την ορατότητα µόνο µέσα στοίδιοπακέτο ορατότητα µόνο µέσα από κλάσεις του ίδιου πακέτου protected - Ορατότητα σε κλάσεις του ίδιου πακέτου και σε κλάσεις-παιδιά public Ορατότητα παντού Ορατότητα από παντού (πρέπει και η κλάση να δηλώνεται public) 15

Η γλώσσα Java! Χαρακτηρισµός πεδίων και µεθόδων ως static και final Χαρακτηρισµός Οταν αφορά κλάση Οταν αφορά πεδίο Οταν αφορά µέθοδο - Μπορεί να περιέχει ως µέλη κλάσεις και αντικείµενα Αποθηκεύεται σε κάθε αντικείµενο Αποθηκεύεται σε κάθε αντικείµενο static - Χαρακτηρίζει την κλάση και είναι το ίδιο για όλα τα αντικείµενα Επιδρά µόνο σε πεδία της κλάσης final εν µπορεί να κληρονοµηθεί Σταθερά που αντιγράφεται σε όλα τα αντικείµενα και δεν µπορεί να αλλάξει τιµή Μέθοδος που δεν µπορεί να παρακαµφθεί από ορισµό σεκλάσηπαιδί static final - Σταθερά που αποθηκεύεται στο ίδιο σηµείο για όλα τα αντικείµενα Μέθοδος της κλάσης που δεν µπορεί να παρακαµφθεί Η γλώσσα Java! Κληρονοµικότητα και αναφορά σε constructors " this: αναφέρεται σε µέλος του ενεργού αντικειµένου " this(), this(arg1, arg2, ): καλεί έναν άλλο constructor της κλάσης " super(), super(arg1, arg2): καλεί έναν constructor στην κλάση-πατέρα 16

Η γλώσσα Java! Αναζήτηση τεκµηρίωσης της γλώσσας " Το SDK (έκδοση 1.3) για την Java 2 " Ητεκµηρίωση του SDK και του API της Java (π.χ.) C:\j2sdk1_3_0-doc \api\index.htm! Πολλάπακέταδιατίθενταιέτοιµα στοinternet! ενείναιδυνατόννακαλυφθούνπλήρως ούτεκανταπακέταπουέρχονταιµαζί µε τηγλώσσα! Πρέπει να µάθουµε πώς να µαθαίνουµε Ητεκµηρίωση του API 17

Εργαλεία συγγραφής κώδικα! edit, notepad: λειτουργούν, αλλά δεν συνιστώνται! Συντάκτης προγραµµάτων: TextPad " Υποστηρίζει πολλές γλώσσες προγραµµατισµού " Με ευκολίες για τον προγραµµατιστή " ιατίθεται στο εργαστήριο! Βιβλιοθήκη εισόδου - εξόδου: " Απλοποιεί την είσοδο και έξοδο simpleio " Πρέπει να βρίσκεται στο φάκελο εργασίας " ιατίθεται στο εργαστήριο Ο χώρος εργασίας! Εγκατεστηµένο το JDK ( j2sdk1_3_0-win.exe )! Το.\bin πρέπει να ανήκει στο path του συστήµατος! Εγκατεστηµένο το TextPad! ηµιουργία φακέλου εργασίας (π.χ. C:\TE031)! Αντιγραφή του φακέλου simpleio κάτω από τον χώρο εργασίας (C:\TE031\simpleIO)! Συσχέτιση των αρχείων.java µε το TextPad 18

Ο χώρος εργασίας Ο χώρος εργασίας 19

Η βιβλιοθήκη simpleio Η βιβλιοθήκη simpleio 20

Applets - Εισαγωγή στην HTML! HyperText Markup Language! Αναπτύχθηκε από το CERN µαζί µε το πρωτόκολλο HTTP (HyperText Transfer Protocol)! Αρχικά ήταν πολύ απλή, στη συνέχεια αναπτύχθηκε και εµπλουτίστηκε! Η ανάπτυξή της συνδέεται µε την ανάπτυξη του Internet και κυρίως του World Wide Web, καθώς και των συναφών τεχνολογιών και πρωτοκόλλων (DNS, TCP, IP, κ.ά.)! Ενεργά στοιχεία της HTML: " Εικόνες, media γενικότερα " Scripts " Applets " ActiveX / COM / DCOM κ.ά. Objects Applets - Εισαγωγή στην HTML 21

Applets - Εισαγωγή στην HTML Applets - Εισαγωγή στην HTML 22

Applets - Εισαγωγή στην HTML! AWT: Abstract Windowing Toolkit! Σχετικά packages: " java.applet, java.awt, java.awt.color, java.awt.datatransfer, java.awt.dnd, java.awt.event, java.awt.font, java.awt.geom, java.awt.im, java.awt.im.spi, java.awt.image, java.awt.image.renderable, java.awt.print Applets - χαρακτηριστικές µέθοδοι! Κάθε κλάση που κληρονοµεί το Applet, περιέχει τις µεθόδους: init(), start(), stop(), destroy() O browser φορτώνει τη σελίδα init() start() Ξεκινά η εκτέλεση του applet Ο χρήστης εγκαταλείπει τη σελίδα stop() Οχρήστηςεπιστρέφει στη σελίδα Οχρήστηςκλείνει τον browser destroy() 23