1 / 28

Εισαγωγή στη JAV Α ( μέρος Α’ )

Εισαγωγή στη JAV Α ( μέρος Α’ ). Βασίλης Παπαταξιάρχης {vpap@di.uoa.gr} Μάθημα : Αντικειμενοστραφής Προγραμματισμός Διδάσκουσα : Ιζαμπώ Καράλη Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Βασικά Σημεία. Εισαγωγικές Πληροφορίες για τη γλώσσα Java

morna
Download Presentation

Εισαγωγή στη JAV Α ( μέρος Α’ )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Εισαγωγή στη JAVΑ(μέρος Α’) Βασίλης Παπαταξιάρχης {vpap@di.uoa.gr} Μάθημα: Αντικειμενοστραφής Προγραμματισμός Διδάσκουσα: Ιζαμπώ Καράλη Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών

  2. Βασικά Σημεία • Εισαγωγικές Πληροφορίες για τηγλώσσα Java • Τεχνολογία Java • Δομή ενός Java προγράμματος • Χαρακτηριστικά της γλώσσας Java • Επιπλέον Δυνατότητες • Διαφορές με C++

  3. Ιστορικά Στοιχεία • Η Java δημιουργήθηκε το 1991 από τον James Gosling κ.ά. στη SunMicrosystems. • Αρχικά, ονομάστηκε 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 Program Java APIs JVM H/W - OS Java 2 Platform • Αποτελείται από 2 μέρη: • Java Virtual Machine • Java APIs • Java APIs • Βιβλιοθήκες που παρέχουν βασικές συναρτήσεις έτοιμες για χρήση • 3 εκδόσεις: • Java 2 Standard Edition (J2SE): desktop και δικτυακές εφαρμογές • Java 2 Enterprise Edition (J2EE): εταιρικές εφαρμογές • Java 2 Micro Edition (J2ME): χρήση σε κινητές συσκευές

  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 • Περιέχει 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. Φάσεις Εκτέλεσης java compiler bytecode file interpreter (VM) Source code Hello.java Hello.class javac java

  13. Hello World  • Βήμα 1 • Βήμα 2 • javac HelloWorld.java • Βήμα 3 • 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++ • Τελεστές • Παρόμοια με C++ • ‘+’: συνένωση Strings • “instanceof” operator • Π.χ. System.out.println(“Size of array = ” + array.size());

  17. static - final • Static • variable: ανήκει στην κλάση • method: χρησιμοποιεί μόνο παραμέτρους • Final • variable: απαγόρευση αλλαγής τιμής εντός εμβέλειας • method: δε μπορεί να γίνει override • class: δε μπορεί να γίνει extend

  18. Δομές Ελέγχουστη Java • Παρόμοια με C++ • Δομές Επιλογής • if-else • switch-case • Δομές Επανάληψης • for • while • do while • break, continue, return, goto

  19. Δηλώσεις import • Δίνουν εντολή στον compiler να καταστήσει ορατό ένα πακέτο (package)στο αρχείο κώδικα. • Π.χ. import java.util.Vector //μόνο την κλάση Vector import java.util.* //ό,τι περιέχεται στο java.util

  20. Διαχείριση Μνήμης • Γίνεται αυτόματα μέσω ενός νήματος: του garbage collector. • Ένα κομμάτι μνήμης απελευθερώνεται runtime όταν πλέον δεν υπάρχει άλλη αναφορά προς αυτό μέσα στο πρόγραμμα. • Ο χρήστης δεν ασχολείται (και δεν μπορεί άμεσα να το κάνει) με την απελευθέρωση μνήμης

  21. Τεκμηρίωση – Αρχεία .jar • Javadoc • Αυτόματη παραγωγήτεκμηρίωσης σε μορφή html σελίδαςμέσω των αρχείων κώδικα Java • Ο κώδικας συνυπάρχει με το κείμενο τεκμηρίωσης – απευθείας προσπέλαση. • Αρχεία .jar • Διευκολύνει τη διαχείριση των Java αρχείων • Ενοποίηση αρχείων σε πακέτα

  22. Java και Διαδίκτυο • JavaApplets • Web-εφαρμογές και όχι τυπικά java προγράμματα • Τοποθετούνται σε ιστοσελίδες • Εκτελούνται από τη JVM εντός ενός Web browser • Υποστήριξη sockets, servlets, κ.ά.

  23. Άλλες Διαφορές από C++ (1/3) • Η Java δεν επιτρέπει πολλαπλή κληρονομικότητα (για λόγους απλότητας) • Κάθε κλάση μπορεί να κληρονομεί το πολύ από μία άλλη κλάση («extends») • Interfaces: Δομές που περιέχουν «μη υλοποιημένες» συναρτήσεις,χωρίς μεταβλητές-μέλη και δεν είναι κλάσεις • Μία κλάση μπορεί να κάνει «implement» περισσότερα από ένα interface

  24. Άλλες Διαφορές από C++ (2/3) • Η Java θεωρείται εν γένει απλούστερη γλώσσα από τη C++. • Όλες οι Java μέθοδοι είναι όπως οι virtual της C++. • Η Java δεν υποστηρίζει δείκτες (pointers).

  25. Άλλες Διαφορές από C++ (3/3) • Η Java δεν υποστηρίζει defines, typedefs ή preprocessor. Οπότε, δε χρειάζεται ούτε αρχεία κεφαλίδας (header files). • Στη Java δεν υποστηρίζονται καθολικές μεταβλητές. Εναλλακτικά: “static” • Στη Java δεν επιτρέπονται συναρτήσεις εκτός κλάσεων (stand-alone functions).

  26. Προτεινόμενες Πηγές • The Source for Java Developers, http://java.sun.com/ • The Java Tutorials, http://java.sun.com/docs/books/tutorial/ • Learning Java, Pat Niemeyer & Jonathan Knudsen • Thinking in Java,Bruce Eckel,http://www.mindview.net/Books/TIJ/

  27. Την επόμενη φορά… • Λάθη και Εξαιρέσεις • Μετατροπή Αντικειμένων • Είσοδος / Έξοδος • Εργαλεία Ανάπτυξης • Επιπρόσθετα Θέματα

  28. Ερωτήσεις ?

More Related