Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1
Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά Στοιχεία της γλώσσας Java 2
Πρωτογενείς (Primitive) Τύποι Δεδομένων Λέξη Κλειδί byte short int long float double char boolean ακέραιος Περιγραφή μικρός (short) ακέραιος Απλής ακρίβειας αριθ. κιν. υποδιαστ. Διπλής ακρίβειας αριθ. κιν. υποδιαστ. Ένας χαρακτήρας (Ακέραιοι) ακέραιος μεγέθους ενός byte μεγάλος (long) ακέραιος (Πραγματικοί) (Άλλοι Τύποι) Μια boolean τιμή (true ή false) Μέγεθος/Μορφή 8-bit two's complement 16-bit two's complement 32-bit two's complement 64-bit two's complement 32-bit IEEE 754 64-bit IEEE 754 16-bit Unicode character true ή false Java Βασικά Στοιχεία της γλώσσας Java 3
Παραδείγματα Τιμών Πρωτογενών Τύπων Δεδομένων Τιμή (Literal) Τύπος Δεδομένων Τιμή (Literal) Τύπος Δεδομένων 178 int 26.77e3 double 8864L long c char 37.266 double true boolean 37.266D double false boolean 87.363F float Java Βασικά Στοιχεία της γλώσσας Java 4
τελεστές Αριθμητικοί τελεστές: +, -, *, /, %, ++, -- Τελεστές σύγκρισης: <, >, >=, <=, ==,!= Λογικοί τελεστές: &, &&,,,!, ^ (λογικό xor) Τελεστές Ολίσθησης: <<, >>, >>> Java Βασικά Στοιχεία της γλώσσας Java 5
Τελεστέςεκχώρησηςτιμής = += -= *= /= %= &= ^= <<= >>= >>>= Παραδείγματα: op1 += op2; // op1 = op1 + op2; op1 /= op2; // op1 = op1 / op2; Java Βασικά Στοιχεία της γλώσσας Java 6
?: []. () (type) new instanceof Eιδικοί τελεστές Java Βασικά Στοιχεία της γλώσσας Java 7
Δομές Ελέγχου Ροής while() { } do { } while(); for ( ; ; ; ); if () then { } else { }; switch () { case 1: ; break; } Java Βασικά Στοιχεία της γλώσσας Java 8
Κλάσεις και Αντικείμενα Αντικείμενο: Το στιγμιότυπο μιας κλάσης Java Βασικά Στοιχεία της γλώσσας Java 9
αυτόματες μεταβλητές Οι βασικοί τύποι δεδομένων: boolean, int, long, float, double, char Όλες οι άλλες μεταβλητές είναι αντικείμενα Πρέπει να δώσουμε αρχική τιμή σε κάθε αυτόματη μεταβλητή Java Βασικά Στοιχεία της γλώσσας Java 10
final μεταβλητές Όταν πάρει μια τιμή final μεταβλητή δεν επιτρέπεταιναμεταβληθείητιμή. Ουσιαστικά είναι σταθερές final int afinalvar = 0; Εάν μια final μεταβλητή δηλωθεί αλλά δεν αρχικοποιηθεί ονομάζεται blank final. final int blankfinal;... blankfinal = 0; Java Βασικά Στοιχεία της γλώσσας Java 11
Block Μία ή περισσότερες εντολές μεταξύ 2 αγκυλών { ; ; } Παράδειγμα: if (i < 10) { <εντολές> Βlocks } else { <εντολές> } Java Βασικά Στοιχεία της γλώσσας Java 12
Εμβέλεια Ονομάτων Java Βασικά Στοιχεία της γλώσσας Java 13
Δυναμική Δημιουργία Αντικειμένων Στην Java όλατααντικείμενα δημιουργούνται δυναμικά με τον τελεστή new: double[] D = new double[10]; Java Βασικά Στοιχεία της γλώσσας Java 14
Αναφορές - Αντικείμενα Προσπέλαση των αντικειμένων γίνεται μέσω αναφορών Java Βασικά Στοιχεία της γλώσσας Java 15
Αποκομιδή Απορριμμάτων (Garbage Collection) Η Java υλοποιεί αυτόματη διαχείριση μνήμης Τα προγράμματα δημιουργούν δυναμικά αντικείμενα. Όταν τα αντικείμενα δεν χρησιμοποιούνται πλέον το περιβάλλον της Java αποδεσμεύει αυτόματα τα αντικείμενα αυτά Η διαδικασία αποδέσμευσης της μνήμης ονομάζεται Αποκομιδή Απορριμμάτων (Garbage Collection) Java Βασικά Στοιχεία της γλώσσας Java 16
package package είναι ένας μηχανισμός της java για την οργάνωση κλάσεων σε χώρους ονομάτων τα java packages μπορούν να αποθηκευτούν σε συμπιεσμένα αρχεία τύπου jar το package δηλώνεται στην αρχή του πηγαίου κώδικα της java πχ.: package dsalg.lab02 Java Βασικά Στοιχεία της γλώσσας Java 17
χώροι ονομάτων import java.util.random; import java.util.*; Java Βασικά Στοιχεία της γλώσσας Java 18
Μέλη Κλάσεων και Αντικειμένων (1) Μέλη Κλάσεων Ανήκουν στην κλάση: Οι μέθοδοι (class methods) και οι μεταβλητές μιας κλάσης (class variables) είναι συνδεδεμένες με μια συγκεκριμένη κλάση Ένα στιγμιότυπο: Γιακάθεμεταβλητήπουείναιμέλος μιας κλάσης δημιουργείται ένα ακριβώς στιγμιότυπο της μεταβλητής όταν φορτώνεται η κλάση στο σύστημα, ανεξάρτητα από το πόσα στιγμιότυπα (αντικείμενα) της κλάσης θα δημιουργηθούν Προσπέλαση μέσω της κλάσης: Η προσπέλαση των μελών μιας κλάσης γίνεται μέσω της κλάσης Java Βασικά Στοιχεία της γλώσσας Java 19
Στατικά Μέλη Μέλη που ανήκουν στην κλάση και όχι σε στιγμιότυπα ονομάζονται και στατικά (static) static: Η λέξη κλειδί static δηλώνει ότι μία μέθοδος ή μία μεταβλητή είναι στατική Java Βασικά Στοιχεία της γλώσσας Java 20
Μέλη Κλάσεων και Αντικειμένων (2) Μέλη Αντικειμένων Ανήκουν στα στιγμιότυπα της κλάσης: Οι μέθοδοι και οι μεταβλητές ενός αντικειμένου είναι συνδεδεμένες με το συγκεκριμένο αντικείμενο (στιγμιότυπο) της κλάσης Ένα στιγμιότυπο για κάθε στιγμιότυπο της κλάσης: Κάθε νέο στιγμιότυπο μιας κλάσης έχει τα δικά του στιγμιότυπα των μεταβλητών της κλάσης Προσπέλαση μέσω του στιγμιότυπου της κλάσης: Η προσπέλαση των μεθόδων και των μεταβλητών ενός αντικειμένου γίνεται μέσω του συγκεκριμένου αντικειμένου Java Βασικά Στοιχεία της γλώσσας Java 21
Boxing - Unboxing Για κάθε τύπο δεδομένων που δεν είναι κλάση (boolean, int, ) υπάρχει μια κατάλληλη κλάση η οποία μπορεί να «πακετάρει» μια αντίστοιχη τιμή int Integer boolean Boolean double - Double Java Βασικά Στοιχεία της γλώσσας Java 22