Εβδομάδα 11 :...

Click here to load reader

download Εβδομάδα 11 : Εκτέλεση  Java  χωρίς το   BlueJ

of 23

  • date post

    02-Feb-2016
  • Category

    Documents

  • view

    49
  • download

    0

Embed Size (px)

description

Εβδομάδα 11 : Εκτέλεση Java χωρίς το BlueJ. Το BlueJ «πακέτο». Ένα BlueJ «πακέτο» αποθηκεύεται σε ένα φάκελο αρχείων στο δίσκο. Ένα BlueJ «πακέτο» αποθηκεύεται σε πολλά διαφορετικά αρχεία. - PowerPoint PPT Presentation

Transcript of Εβδομάδα 11 :...

Εισαγωγ στον ΠρογραμματισμΕβδομδα 11:
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Το BlueJ «πακτο»
να BlueJ «πακτο» αποθηκεεται σε να φκελο αρχεων στο δσκο.
να BlueJ «πακτο» αποθηκεεται σε πολλ διαφορετικ αρχεα.
Μερικ αρχεα αποθηκεουν κδικα Java, λλα μεταφρασμνο κδικα, λλα επιπλον πληροφορες.
Το BlueJ χρησιμοποιε τυπικ Java μορφοποηση για τα περισστερα αρχεα και δημιουργε μερικ να αρχεα με επιπλον πληροφορες.
use laptop
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Η δομ αρχεων του BlueJ
UserInterface
CalcEngine
Calculator
then look at directory
Η δομ αρχεων του BlueJ
bluej.pkg –Περιχει πληροφορες σχετικς με τις κλσεις που περιχει το «πακτο». να ττοιο αρχεο αν «πακτο».
bluej.pkh – αντγραφο ασφλειας (backup) του bluej.pkg
*.java – αρχεο πηγαου κδικα Java (text). να αν κλση.
*.class – αρχεο μεταφρασμνου κδικα Java. να αν κλση.
*.ctxt – BlueJ αρχεο-πλασιο. Περιχει πληροφορες για τις παραμτρους και τα σχολιασμ μας κλσης. να αν κλση.
explain purpose of each file type (leave .class and .java for next slide)
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Τυπικ αρχεα Java
Περιχουν τον πηγαο κδικα σε αναγνσιμη μορφ, πως ακριβς πληκτρολογθηκαν απ τον προγραμματιστ.
Αρχεα κδικα Java: *.class
περιχουν κδικα τπου bytecode (μια μορφ της κλσης αναγνωρσιμη απ την ιδεατ μηχαν της Java). Τα δημιουργε ο μεταφραστς με βση τον πηγαο κδικα.
explain difference between source and compiled code
tell a bit about compiled and interpreted languages
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Ο κκλος «σνταξη-μετφραση-εκτλεση»
explain virtual machine
Σνταξη (editing)
Notepad, emacs, vi, TextPad, ...
Προσοχ με τη χρση του Word: το Word δεν αποθηκεει αυτματα σε μορφ κειμνου (text)
Βεβαιωθετε τι «σσατε» το πργραμμα πριν το μεταφρσετε!
some remarks about editing
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Κλση απ τη γραμμ εκτλεσης εντολν
Η μετφραση και η εκτλεση προγραμμτων Java σε περιβλλον JDK γνονται μσω της γραμμς εκτλεσης εντολν
Σε συστματα Microsoft: DOS περιβλλον
Σε συστματα Unix : Unix περιβλλον (shell)
Βεβαιωθετε τι οι εντολς μετφρασης (javac) και εκτλεσης (java) εναι σωστ τοποθετημνες στο μονοπτι εντολν (command path).
On laptop: open DOS window, show command line commands
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Μετφραση (compiling)
Κλση:
javac <αρχεο Java>
Μεταφρζει το <αρχεο Java> και λες τις κλσεις που εξαρτνται απ αυτ
Παρδειγμα:
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Διαγνωστικ μηνματα
Game.java:22: ';' expected.
C:\bluej\zork>
Ο προγραμματιστς πρπει να ανοξει το αρχεο με τον κειμενογρφο, να βρει τη γραμμ που περιχει το λθος, να το διορθσει, και (αφο «σσει» το πργραμμα) να το ξαναμεταφρσει.
insert an error into the source and compile. Show error message format
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Εκτλεση
C:\bluej\zork> java Game
Η εντολ “java” ενεργοποιε την ιδεατ μηχαν της Java [Java virtual machine]
Η δεδομνη ως παρμετρος κλση φορτνεται και αρχζει η εκτλεση
Εν χρειαστε φορτνονται και λλες κλσεις
Η εκτλεση εναι δυνατ μνο εν η κλση χει μεταφραστε.
show execution (at least an attempt). Do this first with a class that has no main.
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Πρβλημα: Τι εκτελεται;
Exception in thread "main" java.lang.NoSuchMethodError: main
Το πρβλημα: Πως γνωρζει το σστημα ποια μθοδο να εκτελσει;
This error should be reported.
Explain.
Η μθοδος main
Η απντηση: το σστημα εκτλεσης της Java πντα εκτελε τη μθοδο με το νομα main και τον χαρακτηριστικ τπο ορισμτων:
public static void main(String args[])
{ ...
}
Σε μια εφαρμογ Java, η μθοδος main πρπει πντοτε να υπρχει!
Now write a main method, then try again.
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Η μθοδος main (2)
Η main πρπει να δηλωθε ως public
Η main πρπει να δηλωθε ως static
Η main πρπει να χει ως παρμετρο να δινυσμα απ Strings
Μνο η main μπορε να κληθε
Explain “main”.
λεγχος ορθτητας (testing)
Για τον λεγχο ορθτητας, πρπει να γραφον προγρμματα-οδηγο των ελγχων [test drivers]
λοι οι λεγχοι κλσεως των μεθδων πρπει να γρφουν σε μια μθοδο-ελγχου (π.χ. main)
λοι οι δυνατο συνδυασμο παραμτρων πρπει να δοκιμαστον
Το πργραμμα-οδηγς των ελγχων πρπει να δημιουργσει λα τα αντικεμενα
Talk in detail about testing. Make sure they understand the difference in quality between BlueJ and JDK here.
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Wrappers classes
Κλσεις «συσκευαστς»
[Wrapper classes]
Αντικεμενα και μη-αντικεμενα
Η Java παρχει τπους αντικειμνων και τπους βασικν δεδομνων [primitive data types]
Οι βασικο τποι δεδομνων εναι:
Τυποι αντικειμνων:
Ολοι οι αλλοι!
(περιλαμβανομνων των Strings!)
Αντικεμενα και μη-αντικεμενα (2)
Ισχουν διαφορετικο καννες για τα αντικεμενα απ τι για τους βασικος τπους δεδομνων
Τα αντικεμενα κληρονομον [inherit] (τουλχιστον μμεσα) απ την κλση Object
Οι βασικο τποι δεν κληρονομον απ την κλση Object
Τι σημανει αυτ στην πρξη:
Δεδομνα βασικν τπων δεν εναι αντικεμενα!
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Βασικο τποι και συλλογς δεδομνων
Τα στοιχεα της ArrayList εναι αντικεμενα
Δεδομνα τπου int δεν εναι αντικεμενα
νας int δεν μπορε να εισαχθε σε μια ArrayList!
Πως εισγουμε ναν ακραιο (int) σε να αντικεμενο τπου ArrayList;
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Η λση: Κλσεις «συσκευαστς»!
Για κθε βασικ τπο δεδομνων υπρχει μια κλση που μπορε να χρησιμοποιηθε ταν απαιτονται πραγματικ αντικεμενα. Για παρδειγμα:
Βασικς τπος τπος αντικειμνου
Μια λστα απ Integers
ArrayList intList = new ArrayList();
int myInt = anInteger.intValue();
Συσκευζει τον “int” σε να αντικεμενο Integer και το προσθτει στην ArrayList
Μετ την εξαγωγ του “Integer” απ την ArrayList, ακολουθε εξαγωγ του “int” απ τον Integer.
Εισαγωγ στον Προγραμματισμ, Αντνιος Συμβνης, ΣΕΜΦΕ, ΕΜΠ, Slide *
Constants
Σταθερς
[Constants]
Οι σταθερς στην Java
Οι σταθερς πρπει να δηλνονται ως static
Οι σταθερς πρπει να αρχικοποιονται
class Date
...
}