26
Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης

HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 1

HelloWorld

Παύλος Εφραιμίδης

Page 2: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 2

Το πρόγραμμα HelloWorld.java

/** * The HelloWorld class*/

class HelloWorld { public static void main(String[] args) {

System.out.println("Hello World!"); // Display}

}

Σχόλια στη Java

Page 3: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 3

Σχόλια στη Java• Η γλώσσα Java υποστηρίζει τριών ειδών σχόλια:/* σχόλιο - κείμενο */Σχόλια όπως στη C/C++. Ο compiler αγνοεί οτιδήποτευπάρχει από το /* μέχρι το */

// σχόλιο - κείμενοΌπως και στη γλώσσα C++ ο compiler αγνοεί ότι ακολουθείαπό το σύμβολο /// μέχρι το τέλος της τρέχουσας γραμμής

/** σχόλιο - τεκμηρίωση */Σχόλιο που αποτελεί μέρος της τεκμηρίωσης του κώδικα. Οcompiler αγνοεί το σχόλιο όπως και τα σχόλια /* */. Όμως τοεργαλείο javadoc του JDK (Java Development Kit) συμπεριλαμβάνει τα σχόλια αυτά κατά την αυτόματηδημιουργία τεκμηρίωσης

Page 4: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 4

Κλάσεις και Αντικείμενα (1)• Κλάση: ένα πρότυπο ή αλλιώς ένας τύποςδεδομένων

• Αντικείμενο: είναι το στιγμιότυπο μιας κλάσης. Οτύπος ενός αντικειμένου είναι η κλάση από τηνοποία προέρχεται.

Page 5: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 5

Κλάσεις και Αντικείμενα (2)Για παράδειγμα στη Java υπάρχει η κλάση String για την αναπαράσταση αλφαριθμητικών. ΣτηνεντολήString str = new String(“Hello”);– η κλάση String είναι ο τύπος δεδομένων– η μεταβλητή str είναι μια αναφορά σε αντικείμενοτύπου String

– το string “Hello” είναι ένα αντικείμενο τύπου string ήαλλιώς το string “Hello” είναι ένα στιγμιότυπο τηςκλάσης String με τιμή “Hello”.

Page 6: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 6

Ορισμός μιας Κλάσης (1)• Στη γλώσσα προγραμματισμού Java,

– μέθοδοι (συναρτήσεις) και– μεταβλητέςμπορούν να υπάρξουν μόνο ως μέλη κλάσεων ήαντικειμένων (στιγμιότυπα κλάσεων)

• Δεν υποστηρίζονται global συναρτήσεις ήμεταβλητές

• Ο κορμός κάθε προγράμματος Java είναιουσιαστικά μία κλάση

Page 7: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 7

Ορισμός μιας Κλάσης (2)• Το πρόγραμμα HelloWorld είναι μίακλάση

/** * The HelloWorld class*/

class HelloWorld { public static void main(String[] args) {

System.out.println("Hello World!"); //Display}

}

Page 8: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 8

Παράδειγμα μιας κλάσης (1)import java.lang.*;

class Square {private java.awt.Point centre;private double side;public Square(int x, int y, double side) {

centre = new java.awt.Point(x,y);this.side = side;

}public double GetArea() {

return side*side;}public String toString() {

String str = new String();str = "Square -- Center:" + centre.toString() + "- Side: " +

Double.toString(side);return str;

}}

Page 9: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 9

Παράδειγμα μιας κλάσης (2)import java.lang.*;

public class Hello {public static void main(String[] args) {System.out.println("Hello"); // Display

Square sq = new Square(5, 10, 1.5);String s = sq.toString();System.out.println(s);}

}Στιγμιότυπο τηςκλάσης Square

Page 10: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 10

Κληρονομικότητα

• Από μία κλάση μπορούμε να ορίσουμεκλάσεις απογόνους

• Οι απόγονοι κληρονομούν όλα ταχαρακτηριστικά της κλάσης προγόνου ήαλλιώς της βασικής κλάσης

• +++

Page 11: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 11

Κλάσεις στην Java• Όλες οι κλάσεις της Java ανήκουν στηνίδια ενιαία ιεραρχία κλάσεων

• Ρίζα της ενιαίας ιεραρχίας είναι η κλάσηObject

• Όλες δηλαδή οι κλάσεις της Java είναιαπόγονοι (μακρινοί ή κοντινοί) της βασικήςκλάσης Object

Page 12: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 12

Η μέθοδος main• Κάθε εφαρμογή Java πρέπει να περιέχει μια μέθοδο μετον παρακάτω ορισμό:

public static void main(String[] args);• Στην κλάση HelloWorld η μέθοδος main είναι:

/*** The HelloWorld class*/

class HelloWorld { public static void main(String[] args) {

System.out.println("Hello World!"); // Display}

}

Page 13: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 13

Έλεγχος Πρόσβασης (1)• Για κάθε ένα μέλος (μέθοδος ή μεταβλητή) μιας κλάσης πρέπει να καθοριστούν ταδικαιώματα πρόσβασης σε αυτή

• H Java υποστηρίζει 4 κατηγορίες για ταδικαιώματα πρόσβασης σε κάθε μέλος:– public– protected– private– package

Page 14: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 14

Έλεγχος Πρόσβασης (2)• public: Το μέλος είναι προσπελάσιμο απόοποιοδήποτε σημείο του κώδικα, είτε εντός είτεεκτός του package στο οποίο έχει οριστεί ηκλάση

• protected: Το μέλος είναι προσπελάσιμο μόνοαπό κλάσεις που βρίσκονται στο ίδιο package και από κλάσεις απογόνους εντός ή εκτός τουπακέτου αυτού

Page 15: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 15

Έλεγχος Πρόσβασης (3)• private: Το μέλος είναι προσπελάσιμο μόνοαπό μέλη της κλάσης στην οποία έχει δηλωθεί

• package: Εάν δεν δηλωθεί ένας από τους τρειςπαραπάνω τύπους πρόσβασης (public, protected, private) τότε ο τύπος πρόσβασηςείναι package. Αυτό σημαίνει μπορεί να γίνειπροσπέλαση του μέλους από όλα τα μέλη τωνκλάσεων που βρίσκονται στο ίδιο package

Page 16: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 16

Έλεγχος Πρόσβασης (4)

ΟΚΟΚpackage

ΟΚΟΚΟΚΟΚpublic

ΟΚΟΚΟΚprotected

ΟΚprivate

worldpackageαπόγονοικλάση

Page 17: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 17

Η μέθοδος main (συνέχεια)• Κύρια κλάση: Η εκτέλεση ενός προγράμματος

Java ξεκινά από την κύρια κλάση τουπρογράμματος

• Μέθοδος main: Η κύρια κλάση του προγράμματοςπρέπει να περιλαμβάνει τη μέθοδο main

• Εκτέλεση προγράμματος: Η εκτέλεση ενόςπρογράμματος ξεκινά με την εκτέλεση της μεθόδου(συνάρτησης) main (όμοια με τις γλώσσες C/C++)

• Η μέθοδος main είναι απαραίτητη: Εάνδοκιμάσουμε να ξεκινήσουμε την εκτέλεση ενόςπρογράμματος Java από μία κλάση που δενπεριλαμβάνει μέθοδο main, η JVM θα εμφανίζειμήνυμα λάθους

Page 18: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 18

Ο τύπος της μεθόδου main• Στην Java η μέθοδος main πρέπει να έχει τοντύπο:

public static void main(String[] args)

• public: Δηλώνει ότι η κλήση της μεθόδου main μπορεί να γίνει από οποιοδήποτε άλλοαντικείμενο

• static: Δηλώνει ότι η μέθοδος ανήκει στην κλάση(class method) και όχι σε μεμονωμένααντικείμενα της κλάσης

• void: Η μέθοδος main δεν επιστρέφει τιμή

Page 19: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 19

Πέρασμα παραμέτρων καιπληροφοριών

• String[] args: Η παράμετρος args της main χρησιμοποιείται για το πέρασμα παραμέτρων από τηγραμμή εντολών– Οι παράμετροι δίνονται με τη μορφή ενός πίνακα από String– Για παράδειγμα θα μπορούσαμε να τροποποιήσουμε τοπρόγραμμα Java HelloWorld ώστε να δέχεται μία παράμετροπχ.: java HelloWorld duth +++

• Περιβάλλον εκτέλεσης της εφαρμογής: Μέσω τηςκλάσης java.util.Properties μια εφαρμογή μπορεί ναπάρει πληροφορίες για το περιβάλλον και τις ιδιότητεςτου συστήματος στο οποίο εκτελείται +++

Page 20: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 20

HelloWorld (συνέχεια)/**

* The HelloWorld class*/

class HelloWorld { public static void main(String[] args) {

System.out.println("Hello World!"); // Display}

}

• To πρόγραμμα HelloWorld χρησιμοποιεί την κλάση System που είναιμέρος του Java API (Application Programming Interface)

• Το Java API το παρέχει το περιβάλλον εκτέλεσης της Java (Java Runtime Environment – JRE)

Page 21: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 21

Προσπέλαση ενός μέλους (1)• Ας εξετάσουμε την εντολή

System.out.println("Hello World!");• Η εντολή αναφέρεται στην κλάση System• System.out είναι το πλήρες όνομα του πεδίου out τηςκλάσης System

• Η μεταβλητή out (όπως και όλα τα μέλη, μέθοδοι καιμεταβλητές, της κλάσης System) είναι στατική, ανήκει δηλαδήστην κλάση και όχι σε κάποιο αντικείμενο της κλάσης

• Χρησιμοποιούμε το αντικείμενο out χωρίς να έχουμεδημιουργήσει στιγμιότυπο της κλάσης System.

Page 22: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 22

Προσπέλαση ενός μέλους (2)• Η μεταβλητή out είναι μια αναφορά σε ένα στιγμιότυπο τηςκλάσης java.io.PrintStream και χρησιμοποιείται ωςρεύμα (stream) εξόδου

• Χρησιμοποιούμε τη μέθοδο println που έχει κάθε αντικείμενοτύπου PrintStream για να τυπώσουμε το String “Hello World!”

Page 23: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 23

Η κλάση System• Η κλάση System περιλαμβάνει ένα σύνολοαπό χρήσιμα πεδία και μεθόδους

• in, out, err• setin(), setout(), seterr()• getProperty(), setProperty()• gc(); // Garbage Collection;• runFinalization(); //• loadLibrary();

Page 24: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 24

Η κλάση Object

• Η κλάση Object (java.lang.Object) είναι ο(άμεσος ή μακρινός) πρόγονος όλων τωνκλάσεων της Java

Page 25: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 25

Χαρακτηριστικά της κλάσης Object

• close();• equals(Object obj);• finalize();• getClass();• hashCode();• notify();• notifyAll();• toString();• wait();

Page 26: HelloWorld - Democritus University of Thrace · Java ΤοπρόγραμμαHelloWorld 3 ΣχόλιαστηJava • ΗγλώσσαJava υποστηρίζειτριώνειδώνσχόλια:

Java Το πρόγραμμα HelloWorld 26

Πηγές/Αναφορές

• The Java Tutorial, www.sun.com