Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τύποι δεδομένων και τελεστές,
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
ΘΕΩΡΙΑ ΔΙΑΛΕΞΗ 4 Αριθμητικές εκφράσεις και πράξεις Εντολές ανάθεσης
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.
Η βιβλιοθήκη κλάσεων της Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Εβδομάδα 2: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism]
Αντικειμενοστρεφής Προγραμματισμός, Αντώνιος Συμβώνης, Πανεπιστήμιο Ιωαννίνων, Slide 1 Week 13: Review Εβδομάδα 13: Ανασκόπηση.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 9: Input / Output Εβδομάδα 8: Είσοδος / Έξοδος [Input / Output]
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Αντικείμενα, Κλάσεις και Μέθοδοι
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 7: Συμβολοσειρές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Java A Crash Course in (Προσέγγιση μέσω UML)
Ολυμπιάδα Πληροφορικής
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014: Κώστας Στάμος)
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΟΣΣ2 - 4 Δεκεμβρίου 2005 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Πίνακες και αλφαριθμητικά
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κλάσεις και αντικείμενα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
Κεφάλαιο 10 Streams.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εβδομάδα 12: Ανασκόπηση.
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Μεταγράφημα παρουσίασης:

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 2 Το BlueJ «πακέτο» Ένα BlueJ «πακέτο» αποθηκεύεται σε ένα φάκελο αρχείων στο δίσκο. Ένα BlueJ «πακέτο» αποθηκεύεται σε πολλά διαφορετικά αρχεία. Μερικά αρχεία αποθηκεύουν κώδικα Java, άλλα μεταφρασμένο κώδικα, άλλα επιπλέον πληροφορίες. Το BlueJ χρησιμοποιεί τυπική Java μορφοποίηση για τα περισσότερα αρχεία και δημιουργεί μερικά νέα αρχεία με επιπλέον πληροφορίες.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 3 Η δομή αρχείων του BlueJ UserInterface CalcEngine Calculator package: calculator c:\bluej\calculator\ bluej.pkg bluej.pkh Calculator.java Calculator.class Calculator.ctxt UserInterface.java UserInterface.class UserInterface.ctxt CalcEngine.java CalcEngine.class CalcEngine.ctxt

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 4 Η δομή αρχείων του BlueJ bluej.pkg –Περιέχει πληροφορίες σχετικές με τις κλάσεις που περιέχει το «πακέτο». Ένα τέτοιο αρχείο ανά «πακέτο». bluej.pkh – αντίγραφο ασφάλειας (backup) του bluej.pkg *.java – αρχείο πηγαίου κώδικα Java (text). Ένα ανά κλάση. *.class – αρχείο μεταφρασμένου κώδικα Java. Ένα ανά κλάση. *.ctxt – BlueJ αρχείο-πλαίσιο. Περιέχει πληροφορίες για τις παραμέτρους και τα σχολιασμό μίας κλάσης. Ένα ανά κλάση.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 5 Τυπικά αρχεία Java Αρχεία πηγαίου κώδικα: *.java Περιέχουν τον πηγαίο κώδικα σε αναγνώσιμη μορφή, όπως ακριβώς πληκτρολογήθηκαν από τον προγραμματιστή. Αρχεία κώδικα Java: *.class περιέχουν κώδικα τύπου bytecode (μια μορφή της κλάσης αναγνωρίσιμη από την ιδεατή μηχανή της Java). Τα δημιουργεί ο μεταφραστής με βάση τον πηγαίο κώδικα.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 6 Ο κύκλος «σύνταξη-μετάφραση-εκτέλεση» *.java *.class Ιδεατή μηχανή Κειμενο- γράφος μεταφραστής (javac) (java)

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 7 Σύνταξη (editing) Μπορεί να χρησιμοποιηθεί οποιοσδήποτε κειμενογράφος. Notepad, emacs, vi, TextPad,... Προσοχή με τη χρήση του Word: το Word δεν αποθηκεύει αυτόματα σε μορφή κειμένου (text) Βεβαιωθείτε ότι «σώσατε» το πρόγραμμα πριν το μεταφράσετε!

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 8 Κλήση από τη γραμμή εκτέλεσης εντολών Η μετάφραση και η εκτέλεση προγραμμάτων Java σε περιβάλλον JDK γίνονται μέσω της γραμμής εκτέλεσης εντολών Σε συστήματα Microsoft: DOS περιβάλλον Σε συστήματα Unix : Unix περιβάλλον (shell) Βεβαιωθείτε ότι οι εντολές μετάφρασης (javac) και εκτέλεσης (java) είναι σωστά τοποθετημένες στο μονοπάτι εντολών (command path).

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 9 Μετάφραση (compiling) Όνομα του JDK μεταφραστή: javac Κλήση: javac Μεταφράζει το και όλες τις κλάσεις που εξαρτώνται από αυτό Παράδειγμα: cd C:\bluej\zork javac Game.java

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 10 Διαγνωστικά μηνύματα C:\bluej\zork> javac Game.java Game.java:22: ';' expected. private Parser parser ^ 1 error C:\bluej\zork> Ο προγραμματιστής πρέπει να ανοίξει το αρχείο με τον κειμενογράφο, να βρει τη γραμμή που περιέχει το λάθος, να το διορθώσει, και (αφού «σώσει» το πρόγραμμα) να το ξαναμεταφράσει.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 11 Εκτέλεση C:\bluej\zork> java Game Η εντολή “java” ενεργοποιεί την ιδεατή μηχανή της Java [Java virtual machine] Η δεδομένη ως παράμετρος κλάση φορτώνεται και αρχίζει η εκτέλεση Εάν χρειαστεί φορτώνονται και άλλες κλάσεις Η εκτέλεση είναι δυνατή μόνο εάν η κλάση έχει μεταφραστεί.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 12 Πρόβλημα: Τι εκτελείται; Εάν δοκιμάσουμε: C:\bluej\zork> java Game.java Exception in thread "main" java.lang.NoSuchMethodError: main Το πρόβλημα: Πως γνωρίζει το σύστημα ποια μέθοδο να εκτελέσει;

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 13 Η μέθοδος main Η απάντηση: το σύστημα εκτέλεσης της Java πάντα εκτελεί τη μέθοδο με το όνομα main και τον χαρακτηριστικό τύπο ορισμάτων: public static void main(String args[]) {... } Σε μια εφαρμογή Java, η μέθοδος main πρέπει πάντοτε να υπάρχει!

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 14 Η μέθοδος main (2) Η main πρέπει να υπάρχει Η main πρέπει να δηλωθεί ως public Η main πρέπει να δηλωθεί ως static Η main πρέπει να έχει ως παράμετρο ένα διάνυσμα από String s Μόνο η main μπορεί να κληθεί

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 15 Έλεγχος ορθότητας (testing) Για τον έλεγχο ορθότητας, πρέπει να γραφούν προγράμματα-οδηγοί των ελέγχων [test drivers] Όλοι οι έλεγχοι κλήσεως των μεθόδων πρέπει να γράφουν σε μια μέθοδο-ελέγχου (π.χ. main) Όλοι οι δυνατοί συνδυασμοί παραμέτρων πρέπει να δοκιμαστούν Το πρόγραμμα-οδηγός των ελέγχων πρέπει να δημιουργήσει όλα τα αντικείμενα

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 16 Wrappers classes Κλάσεις «συσκευαστές» [Wrapper classes]

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 17 Αντικείμενα και μη-αντικείμενα Η Java παρέχει τύπους αντικειμένων και τύπους βασικών δεδομένων [primitive data types] Οι βασικοί τύποι δεδομένων είναι:Τυποι αντικειμένων: int, short, long, float, double, boolean, char, byte Ολοι οι αλλοι! (περιλαμβανομένων των Strings!)

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 18 Αντικείμενα και μη-αντικείμενα (2) Ισχύουν διαφορετικοί κανόνες για τα αντικείμενα από ότι για τους βασικούς τύπους δεδομένων –Τα αντικείμενα κληρονομούν [inherit] (τουλάχιστον έμμεσα) από την κλάση Object –Οι βασικοί τύποι δεν κληρονομούν από την κλάση Object Τι σημαίνει αυτό στην πράξη: Δεδομένα βασικών τύπων δεν είναι αντικείμενα!

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 19 Βασικοί τύποι και συλλογές δεδομένων Τα στοιχεία της ArrayList είναι αντικείμενα Δεδομένα τύπου int δεν είναι αντικείμενα Ένας int δεν μπορεί να εισαχθεί σε μια ArrayList ! Τα στοιχεία της ArrayList είναι αντικείμενα Δεδομένα τύπου int δεν είναι αντικείμενα Ένας int δεν μπορεί να εισαχθεί σε μια ArrayList ! Πως εισάγουμε έναν ακέραιο ( int ) σε ένα αντικείμενο τύπου ArrayList ;

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 20 Η λύση: Κλάσεις «συσκευαστές»! Για κάθε βασικό τύπο δεδομένων υπάρχει μια κλάση που μπορεί να χρησιμοποιηθεί όταν απαιτούνται πραγματικά αντικείμενα. Για παράδειγμα: Βασικός τύπος τύπος αντικειμένου intInteger charCharacter booleanBoolean

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 21 Μια λίστα από Integers ArrayList intList = new ArrayList(); int anInt = 42; intList.add(new Integer(anInt));... Integer anInteger; anInteger = (Integer)intList.get(0); int myInt = anInteger.intValue(); Συσκευάζει τον “int” σε ένα αντικείμενο Integer και το προσθέτει στην ArrayList Μετά την εξαγωγή του “Integer” από την ArrayList, ακολουθεί εξαγωγή του “int” από τον Integer.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 22 Constants Σταθερές [Constants]

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 23 Οι σταθερές στην Java Η δεσμευμένη λέξη final δηλώνει ένα πεδίο ως σταθερά Οι σταθερές πρέπει να δηλώνονται ως static Οι σταθερές πρέπει να αρχικοποιούνται class Date { private static final int daysPerWeek = 7;... }