Η γλώσσα Java, το πρώτο πρόγραμμα
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Χαρακτηριστικά της Java
Ιστορία της Java
Χρονολογίες
- 1990
- James Gosling, Patrick Naughton, Mike Sheridan: Project Green
- 1991
- OAK, *7
- 1993
- Εφαρμογές Video on Demand
- 1995
- Java, HotJava browser
Γενεαλογία
- Αλγοριθμικές γλώσσες όπως FORTRAN και Algol, C, Ada
- Αντικειμενοστρεφείς γλώσσες όπως Simula, Smalltalk, Objective C, C++
Το πρώτο μου πρόγραμμα
Το παρακάτω πρόγραμμα τυπώνει "hello, world" στην οθόνη.
class Hello {
public static void main(String args[]) {
System.out.println("Hello, world.");
}
}
Μπορούμε να το αλλάξουμε για να τυπώσει:
Μεταγλώττιση και εκτέλεση
Μηχανισμός μεταγλώττισης και εκτέλεσης
-
Ο μεταγλωττιστής της Java (javac) μετατρέπει το πηγαίο πρόγραμμα
από Java σε εντολές της
ιδεατής μηχανής Java (Java virtual machine) (JVM)
- Το περιβάλλον εκτέλεσης της Java (java)
- φορτώνει την κλάση που ορίζουμε,
- φορτώνει όποιες ακόμα κλάσεις απαιτούνται,
- τις συνδέει με την κλάση που ζητήσαμε να εκτελεστεί ορίσαμε, και
- εκτελεί τις εντολές JVM αρχίζοντας από τη μέθοδο main.
Συνάρτηση σε Java
// Return n!
static public int factorial(int n) {
int result;
int counter;
counter = n;
result = 1;
while (counter > 0) {
result = result * counter;
counter = counter - 1;
}
return (result);
}
Αντίστοιχες εντολές JVM
Method int factorial(int)
0 iload_0
1 istore_2
2 iconst_1
3 istore_1
4 goto 15
7 iload_1
8 iload_2
9 imul
10 istore_1
11 iload_2
12 iconst_1
13 isub
14 istore_2
15 iload_2
16 ifgt 7
19 iload_1
20 ireturn
Στοιχεία του προγράμματος
Τα προγράμματα της Java αποτελούνται από ορισμένες βασικές τάξεις στοιχείων:
- Τα κενά, όπως ο χαρακτήρας ' ' και η αλλαγή της γραμμής.
Αυτά γενικά δεν επηρεάζουν καθόλου τη συμπεριφορά του προγράμματος.
Για παράδειγμα μπορούσαμε να γράψουμε το πρόγραμμα ως εξής:
class Hello { public static void main(String args[]) {
System.out.println("Hello, world."); } }
Χρησιμοποιούμε κενά (spaces) για να κάνουμε το
πρόγραμμα πιο εύληπτο.
- Τα ονόματα των συναρτήσεων (functions),
κλάσεων (classes) και των
μεταβλητών.
Αυτά αρχίζουν με έναν λατινικό αλφαβητικό χαρακτήρα και
μπορούν να ακολουθούνται από άλλους ή/και ψηφία.
- Η δήλωση της κλάσης.
Αυτή γράφεται ως το όνομα τη κλάσης ακολουθούμενο από
το περιεχόμενο της κλάσης μέσα σε άγκιστρα ({ }).
Το όνομα του αρχείου πρέπει να είναι ίδιο με το όνομα της κλάσης.
Για την ώρα χρησιμοποιούμε την κλάση για να ορίσουμε μέσα τις
κάποιες συναρτήσεις.
Σε επόμενα μαθήματα θα μάθουμε τι ακριβώς είναι η κλάση
και πως οι συναρτήσεις που ορίζονται στην κλάση αυτή
είναι στην πραγματικότητα μέθοδοι.
- Οι δηλώσεις των συναρτήσεων.
Αυτές γράφονται ως το όνομα τη συνάρτησης ακολουθούμενο από
παρενθέσεις και το περιεχόμενο της συνάρτησης μέσα σε άγκιστρα ({ }).
Αν μια συνάρτηση δέχεται ορίσματα, αυτά δηλώνονται μέσα στις παρενθέσεις
που ακολουθούν το όνομα τις συνάρτησης.
Η συνάρτηση main έχει ειδικό νόημα.
Ορίζει το σημείο από το οποία θα αρχίσει να εκτελείται το πρόγραμμα.
- Το περιεχόμενο των συναρτήσεων.
Αυτό αποτελείται από εντολές.
Κάθε εντολή τερματίζεται με μια λατινική
άνω τελεία (semicolon) (; - ελληνικό ερωτηματικό).
- Οι εντολές μέσα στη συνάρτηση εκτελούνται με τη σειρά
από πάνω προς τα κάτω εκτός να έχουμε ορίσει κάτι διαφορετικό.
- Οι κλήσεις άλλων συναρτήσεων.
Αυτές αποτελούν ένα βασικό είδος εντολής.
Η κλήση μιας συνάρτησης αποτελείται από το όνομα της συνάρτησης
ακολουθούμενο από το όρισμα (argument) της
συνάρτησης μέσα σε παρενθέσεις.
Αν η συνάρτηση δέχεται πολλαπλές παραμέτρους, τότε αυτές
χωρίζονται με κόμματα.
Ορισμός απλών συναρτήσεων
Ασκήσεις
Εξοικείωση με το μεταγλωττιστή και τη διαδικασία προγραμματισμού
- Να πληκτρολογήσετε, μεταγλωττίσετε και να εκτελέσετε ένα πρόγραμμα
σε Java που να τυπώνει "I am learning Java"
- Πειραματιστείτε αλλάζοντας διάφορα στοιχεία του προγράμματος.
(Το πιθανότερο είναι οι περισσότερες αλλαγές σας να καταλήγουν σε λάθη.)
- Φτιάξτε ένα πρόγραμμα το οποίο να τυπώνει με * ένα τετράγωνο
στην οθόνη σαν το παρακάτω:
***************
* *
* *
* *
* *
* *
* *
***************
Για να επαναλαμβανόμενα στοιχεία του τετραγώνου να ορίσετε δύο συναρτήσεις
οι οποίες να τα τυπώνουν και να τις καλέσετε όσες φορές και με τη σειρά
που χρειάζεται.
Βιβλιογραφία
Πηγές στο Internet
Γενική βιβλιογραφία
- Ken Arnold and James
Gosling.
The
Java Programming Languge.
Addison-Wesley, 1996.
- David Flanagan.
Java
in a Nutshell.
O'Reilly and Associates, Sebastopol, CA, USA, 1997.
- K. N. King.
Java
Programming: from the Beginning.
W. W. Norton & Company, New York, NY, USA, 2000.
- Tim Lindhorn and Frank
Yellin.
The
Java Virtual Machine Specification.
The Java Series. Addison-Wesley, 1997.
- Gary McGraw and Edward W.
Felten.
Securing Java.
Wiley, 1999.
- Arthur van Hoff, Sami Shaio,
and Orca Starbuck.
Hooked
on Java.
Addison-Wesley, 1996.