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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Από τη C στη C++ Hy240b project 2014 Phase 1.
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
• Php • Joomla • Joomla Module • Παρουσίαση του συστήματος μας.
5η Συνάντηση Εκπαιδευτικών Πληροφορικής στη Δυτική Μακεδονία Πτολεμαΐδα, 29 Σεπτ 2005 Δημιουργία Δυναμικών Ιστοσελίδων με PHP και Dreamweaver MX Στυλιάδης.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΜΑΘ-3122/106 Προγραμματισμός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Java A Crash Course in (Προσέγγιση μέσω UML)
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Σύγκριση Java και C++ Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής - Αλέξανδρος Χατζηγεωργίου, Νοέμβριος 2004.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Κωνσταντίνος Δελησταύρου Ευγενία Παπαδοπούλου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
Επικοινωνία Ανθρώπου Μηχανής Καρακίτσος Ηλίας ΑΜ 614 Ιωάννου Ελένη ΑΜ 647.
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Κ. ΛΑΖΟΣ - Π. ΚΑΤΣΑΡΟΣ Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τμ.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Tomcat Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
Εισαγωγή στη JAVΑ (μέρος Β’) Βασίλης Παπαταξιάρχης Μάθημα: Αντικειμενοστραφής Προγραμματισμός Διδάσκουσα: Ιζαμπώ Καράλη Τμήμα Πληροφορικής.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
ΟΣΣ2 - 4 Δεκεμβρίου 2005 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Προγραμματισμός Διαδικτύου
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Κλάσεις και αντικείμενα
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
Κεφάλαιο 10 Streams.
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στη Java (Μέρος Α’)
Εργασία στην JML Μάθημα: Τυπικές Μέθοδοι Ανάλυσης Συστημάτων
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

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

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

Ιστορικά Στοιχεία Η Java δημιουργήθηκε το 1991 από τον James Gosling κ.ά. στη Sun Microsystems. Αρχικά, ονομάστηκε Oak. Αρχικός στόχος ήταν η ανάπτυξη μίας γλώσσας που θα ήταν ανεξάρτητη πλατφόρμας, δηλ. εύκολα θα «έπαιζε» παντού. Λόγω της ανάπτυξης του Διαδικτύου, η Java βρήκε πρόσφορο έδαφος για ανάπτυξη εφαρμογών.

Τι είναι η Java; Με τη Java μπορείς να κάνεις ότι και με μία τυπική διαδικαστική γλώσσα. Βασίζεται στο αντικειμενοστραφές μοντέλο ανάλυσης και σχεδιασμού. Έχει πολλές ομοιότητες στο συντακτικό της με τη C++.

Αρχιτεκτονική Java Ιδιαιτερότητα: “Compile once, run everywhere”

Μεταφερσιμότητα Τα αρχεία πηγαίου κώδικα Java (.java) μεταγλωττίζονται σε αρχεία bytecode (.class) και όχι σε κώδικα μηχανής (machine code). Τα bytecode αρχεία είναι ανεξάρτητα μηχανής και μπορούν να εκτελεστούν από μία Java Virtual Machine (JVM). Υπάρχουν JVM σχεδόν για κάθε πλατφόρμα. Windows, Linux, Solaris, κ.ά.

Δομή Προγραμμάτων Οι κλάσεις οργανώνονται σε .java αρχεία Σε κάθε αρχείο πρέπει να υπάρχει το πολύ μία public κλάση Συνήθης πρακτική: 1 κλάση ανά αρχείο Το όνομα του αρχείου ταυτίζεται με το όνομα της public κλάσης που περιέχει

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

Java Virtual Machine «Εκτελεί» μεταγλωττισμένα Java προγράμματα που ονομάζονται bytecode αρχεία. Τα bytecode αρχεία είναι ανεξάρτητα πλατφόρμας και μπορούν να εκτελεστούν από οποιονδήποτε υπολογιστή διαθέτει μία JVM. Η JVM φορτώνει τις κλάσεις που χρειάζονται για να εκτελεστεί το Java πρόγραμμα (class loader). Η JVM «επικυρώνει» (verifies) την εγκυρότητα των bytecode αρχείων πριν τα εκτελέσει (bytecode verifier).

JDK - JRE Java Development Kit (JDK) Java Runtime Environment (JRE) Περιέχει JVM και Java βιβλιοθήκες Εργαλεία, όπως jar και javadoc Java Runtime Environment (JRE) Υποσύνολο του JDK Ουσιαστικά περιέχει μία υλοποίηση της JVM με σκοπό τη δυνατότητα εκτέλεσης προγραμμάτων Java.

Αρχεία Java Αρχεία Java .java : πηγαίος κώδικας (source file) .class : bytecode αρχείο (παράγεται από compiler) .jar : σύνολα σχετικών κλάσεων Μεταγλωττίζουμε τα .java αρχεία που περιέχουν κλάσεις. Το μεταγλωττισμένο αρχείο .class που εκτελούμε θα πρέπει να περιέχει ακριβώς μία main συνάρτηση (από εκεί ξεκινά η εκτέλεση)

Αρχείο .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 Έξοδος προγράμματος

Hello World  Βήμα 1 Βήμα 2 Βήμα 3 javac HelloWorld.java java HelloWorld

Τύποι Δεδομένων στη Java (1/2) Πρωτογενείς τύποι δεδομένων (primitive data types): ειδικοί τύποι δεδομένων, built-ins της γλώσσας, μέγεθος ανεξάρτητο πλατφόρμας Δεν χρησιμοποιείται η λέξη “new” για τη δημιουργία μίας μεταβλητής πρωτογενούς τύπου Π.χ. int i = 1000;

Τύποι Δεδομένων στη 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 κλπ.

Βασικά Στοιχεία της Java Μεταβλητές Παρόμοια με C++ “final”: απαγόρευση αλλαγής τιμής εντός εμβέλειας “static”: ανήκει στην κλάση Τελεστές ‘+’: συνένωση Strings “instanceof” operator Π.χ. System.out.println(“Size of array = ” + array.size());

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

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

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

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

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

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

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

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

Προτεινόμενες Πηγές 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/

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

Ερωτήσεις ?