Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Εισαγωγή στη JAVΑ (μέρος Α’)
Βασίλης Παπαταξιάρχης Μάθημα: Αντικειμενοστραφής Προγραμματισμός Διδάσκουσα: Ιζαμπώ Καράλη Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών
2
Βασικά Σημεία Εισαγωγικές Πληροφορίες για τη γλώσσα Java
Επιπλέον Δυνατότητες Διαφορές με C++
3
Ιστορικά Στοιχεία Η Java δημιουργήθηκε το 1991 από τον James Gosling κ.ά. στη Sun Microsystems. Αρχικά, ονομάστηκε Oak. Αρχικός στόχος ήταν η ανάπτυξη μίας γλώσσας που θα ήταν ανεξάρτητη πλατφόρμας, δηλ. εύκολα θα «έπαιζε» παντού. Λόγω της ανάπτυξης του Διαδικτύου, η Java βρήκε πρόσφορο έδαφος για ανάπτυξη εφαρμογών.
4
Τι είναι η Java; Με τη Java μπορείς να κάνεις ότι και με μία τυπική διαδικαστική γλώσσα. Βασίζεται στο αντικειμενοστραφές μοντέλο ανάλυσης και σχεδιασμού. Έχει πολλές ομοιότητες στο συντακτικό της με τη C++.
5
Αρχιτεκτονική Java Ιδιαιτερότητα: “Compile once, run everywhere”
6
Μεταφερσιμότητα Τα αρχεία πηγαίου κώδικα Java (.java) μεταγλωττίζονται σε αρχεία bytecode (.class) και όχι σε κώδικα μηχανής (machine code). Τα bytecode αρχεία είναι ανεξάρτητα μηχανής και μπορούν να εκτελεστούν από μία Java Virtual Machine (JVM). Υπάρχουν JVM σχεδόν για κάθε πλατφόρμα. Windows, Linux, Solaris, κ.ά.
7
Δομή Προγραμμάτων Οι κλάσεις οργανώνονται σε .java αρχεία
Σε κάθε αρχείο πρέπει να υπάρχει το πολύ μία public κλάση Συνήθης πρακτική: 1 κλάση ανά αρχείο Το όνομα του αρχείου ταυτίζεται με το όνομα της public κλάσης που περιέχει
8
Java 2 Platform Αποτελείται από 2 μέρη: Java Program
Java Virtual Machine Java APIs Βιβλιοθήκες που παρέχουν βασικές συναρτήσεις έτοιμες για χρήση 3 εκδόσεις: Java 2 Standard Edition (J2SE): desktop και δικτυακές εφαρμογές Java 2 Enterprise Edition (J2EE): εταιρικές εφαρμογές Java 2 Micro Edition (J2ME): χρήση σε κινητές συσκευές H/W - OS Java APIs JVM Java Program
9
Java Virtual Machine «Εκτελεί» μεταγλωττισμένα Java προγράμματα που ονομάζονται bytecode αρχεία. Τα bytecode αρχεία είναι ανεξάρτητα πλατφόρμας και μπορούν να εκτελεστούν από οποιονδήποτε υπολογιστή διαθέτει μία JVM. Η JVM φορτώνει τις κλάσεις που χρειάζονται για να εκτελεστεί το Java πρόγραμμα (class loader). Η JVM «επικυρώνει» (verifies) την εγκυρότητα των bytecode αρχείων πριν τα εκτελέσει (bytecode verifier).
10
JDK - JRE Java Development Kit (JDK) Java Runtime Environment (JRE)
Περιέχει JVM και Java βιβλιοθήκες Εργαλεία, όπως jar και javadoc Java Runtime Environment (JRE) Υποσύνολο του JDK Ουσιαστικά περιέχει μία υλοποίηση της JVM με σκοπό τη δυνατότητα εκτέλεσης προγραμμάτων Java.
11
Αρχεία Java Αρχεία Java
.java : πηγαίος κώδικας (source file) .class : bytecode αρχείο (παράγεται από compiler) .jar : σύνολα σχετικών κλάσεων Μεταγλωττίζουμε τα .java αρχεία που περιέχουν κλάσεις. Το μεταγλωττισμένο αρχείο .class που εκτελούμε θα πρέπει να περιέχει ακριβώς μία main συνάρτηση (από εκεί ξεκινά η εκτέλεση)
12
Αρχείο .class (bytecode)
Φάσεις Εκτέλεσης java compiler bytecode file interpreter (VM) Source code Hello.java Hello.class javac java Φάση Εργαλείο Έξοδος WRITE Text editor Αρχείο .java COMPILE Java compiler Αρχείο .class (bytecode) RUN Java interpreter Έξοδος προγράμματος
13
Hello World Βήμα 1 Βήμα 2 Βήμα 3 javac HelloWorld.java
java HelloWorld
14
Τύποι Δεδομένων στη Java (1/2)
Πρωτογενείς τύποι δεδομένων (primitive data types): ειδικοί τύποι δεδομένων, built-ins της γλώσσας, μέγεθος ανεξάρτητο πλατφόρμας Δεν χρησιμοποιείται η λέξη “new” για τη δημιουργία μίας μεταβλητής πρωτογενούς τύπου Π.χ. int i = 1000;
15
Τύποι Δεδομένων στη Java (2/2)
Αντικείμενα Στη Java τα πάντα (εκτός των primitives) είναι αντικείμενα της κλάσης java.lang.Object και δημιουργούνται με τη λέξη “new” Π.χ. Date d = new Date(); String s = new String(“Vassilis”); Παραδείγματα: String: ακολουθία χαρακτήρων (κλάση java.lang.String), τυπικά δεν αποτελεί πρωτογενή τύπο δεδομένων, αλλά πρακτικά μπορούμε να τον σκεφτόμαστε ως τέτοιο Arrays, Collections, Vectors, Int, Double, MyClass κλπ.
16
Βασικά Στοιχεία της Java
Μεταβλητές Παρόμοια με C++ “final”: απαγόρευση αλλαγής τιμής εντός εμβέλειας “static”: ανήκει στην κλάση Τελεστές ‘+’: συνένωση Strings “instanceof” operator Π.χ. System.out.println(“Size of array = ” + array.size());
17
Δομές Ελέγχου στη Java Παρόμοια με C++ Δομές Επιλογής Δομές Επανάληψης
if-else switch-case Δομές Επανάληψης for while do while break, continue, return, goto
18
Δηλώσεις import Δίνουν εντολή στον compiler να καταστήσει ορατό ένα πακέτο (package) στο αρχείο κώδικα. Π.χ. import java.util.Vector //μόνο την κλάση Vector import java.util.* //ό,τι περιέχεται στο java.util
19
Διαχείριση Μνήμης Γίνεται αυτόματα μέσω ενός νήματος: του garbage collector. Ένα κομμάτι μνήμης απελευθερώνεται runtime όταν πλέον δεν υπάρχει άλλη αναφορά προς αυτό μέσα στο πρόγραμμα. Ο χρήστης δεν ασχολείται (και δεν μπορεί άμεσα να το κάνει) με την απελευθέρωση μνήμης
20
Τεκμηρίωση – Αρχεία .jar
Javadoc Αυτόματη παραγωγή τεκμηρίωσης σε μορφή html σελίδας μέσω των αρχείων κώδικα Java Ο κώδικας συνυπάρχει με το κείμενο τεκμηρίωσης – απευθείας προσπέλαση. Αρχεία .jar Διευκολύνει τη διαχείριση των Java αρχείων Ενοποίηση αρχείων σε πακέτα
21
Java και Διαδίκτυο Java Applets Υποστήριξη sockets, servlets, κ.ά.
Web-εφαρμογές και όχι τυπικά java προγράμματα Τοποθετούνται σε ιστοσελίδες Εκτελούνται από τη JVM εντός ενός Web browser Υποστήριξη sockets, servlets, κ.ά.
22
Άλλες Διαφορές από C++ (1/3)
Η Java δεν επιτρέπει πολλαπλή κληρονομικότητα (για λόγους απλότητας) Κάθε κλάση μπορεί να κληρονομεί το πολύ από μία άλλη κλάση («extends») Interfaces: Δομές που περιέχουν «μη υλοποιημένες» συναρτήσεις, χωρίς μεταβλητές-μέλη και δεν είναι κλάσεις Μία κλάση μπορεί να κάνει «implement» περισσότερα από ένα interface
23
Άλλες Διαφορές από C++ (2/3)
Η Java θεωρείται εν γένει απλούστερη γλώσσα από τη C++. Όλες οι Java μέθοδοι είναι όπως οι virtual της C++. Η Java δεν υποστηρίζει δείκτες (pointers).
24
Άλλες Διαφορές από C++ (3/3)
Η Java δεν υποστηρίζει defines, typedefs ή preprocessor. Οπότε, δε χρειάζεται ούτε αρχεία κεφαλίδας (header files). Στη Java δεν υποστηρίζονται καθολικές μεταβλητές. Εναλλακτικά: “static” Στη Java δεν επιτρέπονται συναρτήσεις εκτός κλάσεων (stand-alone functions).
25
Προτεινόμενες Πηγές The Source for Java Developers, The Java Tutorials, Learning Java, Pat Niemeyer & Jonathan Knudsen Thinking in Java, Bruce Eckel,
26
Την επόμενη φορά… Λάθη και Εξαιρέσεις Μετατροπή Αντικειμένων
Είσοδος / Έξοδος Εργαλεία Ανάπτυξης Επιπρόσθετα Θέματα
27
Ερωτήσεις ?
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.