ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008 Τμήμα θεωρίας: Κάθε Τρίτη, 11πμ-2μμ, ΑΜΦ22. Διδάσκων: Ντίνος Φερεντίνος email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό εργαστήριο (5-6 2ωρα εργαστήρια το εξάμηνο, κάθε 2 η εβδομάδα, από την εβδομάδα 10-14/3/08) Ηλεκτρονική τάξη: eclass.uoa.gr Ανακοινώσεις, πληροφορίες για εργαστήρια, παραδόσεις, παλιά θέματα, κτλ. Βιβλίο: Java Μια εισαγωγή στην επίλυση προβλημάτων & στον προγραμματισμό, του W. Savitch, 4 η έκδοση ίδιο βιβλίο με την Πληροφορική Ι (2007-08). Βαθμολογία: τ : τελικός βαθμός μαθήματος (0-10) γ : βαθμός γραπτής εξέτασης (0-10) ε : βαθμός εργαστηρίου (τελική εξέταση εργαστηρίου) (0-2) π : ποσοστό παρακολούθησης εργαστηρίων (0-100%) max γ, 0.8 γ + ε, αν γ 3.5 και π 60% τ = γ, αν γ < 3.5 ή π < 60% Εργαστήριο: Τα προαιρετικά εργαστήρια απευθύνονται τόσο στους πρωτοετείς όσο και στους φοιτητές παλαιότερων ετών. Το περιβάλλον ανάπτυξης προγραμμάτων που θα χρησιμοποιηθεί είναι το BlueJ (www.bluej.org). Για να εκτελεστούν προγράμματα Java σε κάποιον υπολογιστή είναι απαραίτητη η εγκατάσταση του JDK (java.sun.com). Πληροφορίες εγκατάστασης και λειτουργίας υπάρχουν στα Έγγραφα της eclass του μαθήματος. 1
Γενική μορφή ενός προγράμματος Java: εφαρμογής Ανάπτυξη εφαρμογής σε Java: 1) Κώδικας Java κλάσεις αρχεία, π.χ. Class1.java 2) Compiler (μεταγλωττιστής): javac Class1.java Class1.class (byte-code) 3) Interpreter (διερμηνέας Java Virtual Machine (JVM)): εκτελεί αρχεία.class: java Class1 Απλή εφαρμογή: (Μία μόνο κλάση κλάση εφαρμογής) class Hello public static void main (String [ ] args) System.out.println( Hello! ); save: Hello.java javac Hello.java java Hello (compilation μεταγλώττιση) (εκτέλεση εκτύπωση του: Hello!) 2
ΚΛΑΣΗ: σύνθετος τύπος δεδομένων Types: - primitive types (πρωτογενείς) (int, double, char, κτλ.) - String (αλφαριθμητικά) - Κλάσεις σύνθετη δομή σχεδιασμένη απ τον προγραμματιστή Όπως μια μεταβλητή a μπορεί να είναι ακέραια: public int a; έτσι και ένα αντικείμενο fiat μπορεί να είναι της κλάσης Car: Car fiat = new Car(); (ένα αντικείμενο (object) λέγεται και στιγμιότυπο (instance) μιας κλάσης) ΚΛΑΣΗ: Επικεφαλίδα Κατασκευαστές Πεδία (μεταβλητές, αντικείμενα) Μέθοδοι Παράδειγμα ς: Επικεφαλίδα: > public class ToKelvin Πεδία: > private double C2K = 273.15; Μέθοδος: > public double returnkelvin (double tempc) > > return (tempc + C2K); > 3
Ορισμός μεταβλητής: [ορατότητα] <τύπος> <όνομα> [= <τιμή>]; public int private double π.χ.: public double var1; private int var2 = 5; Ορισμός μεθόδου: [ορατότητα] <τύπος> <όνομα> ([παράμετροι]) public void private int. double void: η μέθοδος δεν επιστρέφει τίποτα int, double, char,... : η μέθοδος επιστρέφει μια μεταβλητή του αντίστοιχου τύπου, άρα περιέχει τη λέξη return (περισσότερα σε επόμενο μάθημα). Οι παράμετροι, εάν υπάρχουν, είναι της μορφής:... <όνομα_μεθόδου> (<τύπος> <παράμ1>, <τύπος> <παράμ2>,...)... x = παράμ1;... y = 5 * παράμ2;... Η κλάση ToKelvin είναι μια κλάση. Για να ολοκληρωθεί το πρόγραμμα πρέπει να φτιάξουμε μια κλάση εφαρμογής (TempConv), έτσι ώστε: ToKelvin C TempConv Υποστήριξης Εφαρμογής K 4
Η κλάση εφαρμογής: public class TempConv public static void main (String [ ] args) // dimiourgia metavlitwn: double C = 15.5; double K; // dimiourgia antikeimenou tis klasis ToKelvin: ToKelvin tok = new ToKelvin(); // klisi tis methodou returnkelvin me apostoli // tis thermokrasias se vathmous Celsiou // kai epistrofi tis se vathmous Kelvin: K = tok.returnkelvin(c); // ektypwsi stin othoni tis therm. se Kelvin: System.out.println(K); // end main // end class Εκτέλεση μεθόδου του αντικειμένου (στιγμιότυπου) μιας κλάσης: 1) Δημιουργία στιγμιότυπου (αντικειμένου) της κλάσης: <όνομα_ς> <όνομα_αντικειμ> = new <όνομα_ς> ( ); Παράδειγμα από την παραπάνω κλάση (TempConv): ToKelvin tok = new ToKelvin(); 2) Κλήση μεθόδου (invoke method): <όνομα_αντικειμ>.<όνομα_μεθόδου> ( ); Αν η μέθοδος δεν είναι void, δηλαδή αν επιστρέφει κάτι: <μεταβλητή> = <όνομα_αντικειμ>.<όνομα_μεθόδου> ( ); Παράδειγμα από την παραπάνω κλάση (TempConv): K = tok.returnkelvin(c); 5