Προγραμματισμός σε Java

Σχετικά έγγραφα
Δομές ελέγχου ροής προγράμματος

Αντικειµενοστρεφής Προγραµµατισµός

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Αντικειμενοστρεφής Προγραμματισμός

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Κλάσεις και Αντικείµενα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Βασικά Στοιχεία της Java

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Εισαγωγή στον Προγραμματισμό

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Mεταβλητές (variables) και Σταθερές (constants)

Βασικά Στοιχεία της Java

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Εισαγωγή στον Προγραμματισμό

Java sessions. Part 1 - Βασικά έννοιες - μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Οντοκεντρικός Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Δεδομένα, τελεστές, είσοδος/έξοδος

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Προγραμματισμός σε C++

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Διαδικασιακός Προγραμματισμός

Γενικά (για τις γραπτές εξετάσεις)

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Οι εντολές ελέγχου της ροής ενός προγράμματος.

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

Δομημένος Προγραμματισμός (ΤΛ1006)

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

3. Εκφράσεις και έλεγχος ροής

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

ΗΥ-150. Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΗΥ-150. Προγραμματισμός

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

32-bit signed υποδιαστολής) Double διπλής ακρίβειας 64-bit signed Char unicode character 16-bit Boolean Boolean true or false

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

2.1 Αντικειµενοστρεφής προγραµµατισµός

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

Οντοκεντρικός Προγραμματισμός

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

for for for for( . */

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Δομές ελέγχου & επανάληψης

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές

2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

Διαδικασιακός Προγραμματισμός

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Transcript:

Προγραμματισμός σε Java Σικαλιάς Γιώργος SikRip

Εισαγωγή Ο προγραμματισμός είναι να σαν να διδάσκουμε κάποιον: στόχος μας είναι να κάνει ο Η/Υ αυτό που θέλουμε Πρέπει να «μιλήσουμε» στον υπολογιστή στην γλώσσα που γνωρίζει Οι Η/Υ γνωρίζουν μόνο τα δυαδικά ψηφία (0 και 1) Φυσικά για τον άνθρωπο είναι δύσκολο να θυμάται τεράστιες αλληλουχίες από 0 και 1!!!! Γι αυτό οι επιστήμονες δημιούργησαν τις γλώσσες προγραμματισμού: μια γέφυρα ανάμεσα στον Η/Υ και στον άνθρωπο Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 2

Η τεχνολογία της Java Οι περισσότερες γλώσσες προγραμματισμού είτε μεταγλωττίζουν (compile) είτε μεταφράζουν (interpret) το πρόγραμμα Στην Java συμβαίνουν και τα δύο!!!! Ο compiler της Java μετατρέπει τον πηγαίο κώδικα του προγράμματος σε μια ενδιάμεση γλώσσα (Java bytecodes) Κάθε φορά που τρέχουμε το πρόγραμμα αυτό ο κώδικας Java bytecodes μεταφράζεται και εκτελείται Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 3

Η τεχνολογία της Java Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 4

Η τεχνολογία της Java Η Java bytecodes είναι εντολές για την Java Virtual Machine (Java VM) Έτσι μπορούμε να γράψουμε ένα πρόγραμμα μια φορά και να τρέχει σε κάθε πλατφόρμα Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 5

Συναρτήσεις Προγραμματιστικές μονάδες οι οποίες εκτελούν μια συγκεκριμένη λειτουργία Στη Java η δήλωση συναρτήσεων γίνεται όπως και στην C/C++ τελεστής_προσπέλασης τύπος_επιστοφής όνομα_συνάρτησης(ορίμστα) { κώδικας_συνάρτησης Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 6

Συναρτήσεις Παράδειγμα public int add(int a,int b) { return a+b; Εντολή return: επιστρέφει το αποτέλεσμα στον καλούντα Ειδικός τύπος επιστροφής «void» δεν επιστρέφεται καμία τιμή public void sayhello() { System.out.println("Hello"); Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 7

Δομή Java προγράμματος Δηλώσεις Πακέτων Εντολή «import» Δήλωση Γενικής Κλάσης Η κλάση αυτή έχει την συνάρτηση main() Δεν έχει κάποια άλλη ιδιαιτερότητα Δηλώσεις άλλων κλάσεων Προαιρετικά μπορούμε να δηλώσουμε και άλλες κλάσεις Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 8

Hello world σε Java /*Η κλάση HelloWorldApp υλοποιεί ένα πρόγραμμα το οποίο απλά εμφανίζει "Hello name!" στην οθόνη. */ import java.io.*; public class HelloWorldApp { public static void main(string[] args) { Console con=new Console(); String name=con.console_string(); System.out.println("Hello "+name); //Εμφάνιση μηνύματος. class Console { Κάθε εντολή στην Java τελειώνει με ένα ελληνικό ερωτηματικό (;) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 9

Σχόλια στην Java /*Η κλάση HelloWorldApp υλοποιεί ένα πρόγραμμα το οποίο απλά εμφανίζει "Hello name!" στην οθόνη. */ import java.io.*; public class HelloWorldApp { public static void main(string[] args) { Console con=new Console(); String name=con.console_string(); System.out.println("Hello "+name); //Εμφάνιση μηνύματος. class Console { Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 10

Σχόλια στην Java H Java υποστηρίζει τριών ειδών σχόλια /* comment */ o compiler αγνοεί οτιδήποτε γράψουμε ανάμεσα στο /* και στο */ /** documentation */ o compiler αγνοεί οτιδήποτε γράψουμε ανάμεσα στο /** και στο */ - δημιουργία τεκμηρίωσης για το πρόγραμμα με το εργαλείο javadoc // comment o compiler αγνοεί οτιδήποτε γράψουμε μέχρι το τέλος της γραμμής Βάζουμε πάντα σχόλια!!! Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 11

Δηλώσεις πακέτων /*Η κλάση HelloWorldApp υλοποιεί ένα πρόγραμμα το οποίο απλά εμφανίζει "Hello name!" στην οθόνη. */ import java.io.*; public class HelloWorldApp { public static void main(string[] args) { Console con=new Console(); String name=con.console_string(); System.out.println("Hello "+name); //Εμφάνιση μηνύματος. class Console{ Δηλώνουμε τα πακέτα τα οποία είναι απαραίτητα για τις λειτουργίες του προγράμματος μας Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 12

Χρήσιμα πακέτα import java.io.* Συναρτήσεις Ε / Ε import java.math.* Μαθηματικές Συναρτήσεις Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 13

Κύρια Κλάση /*Η κλάση HelloWorldApp υλοποιεί ένα πρόγραμμα το οποίο απλά εμφανίζει "Hello name " στην οθόνη. */ import java.io.*; public class HelloWorldApp { public static void main(string[] args) { Console con=new Console(); String name=con.console_string(); System.out.println("Hello "+name); //Εμφάνιση μηνύματος. class Console { Κάθε Java πρόγραμμα πρέπει να έχει τουλάχιστον μια κλάση, καμία συνάρτηση ή μεταβλητή δεν μπορεί να μην βρίσκεται σε μια κλάση. Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 14

Συνάρτηση main() /*Η κλάση HelloWorldApp υλοποιεί ένα πρόγραμμα το οποίο απλά εμφανίζει "Hello name " στην οθόνη. */ import java.io.*; public class HelloWorldApp { public static void main(string[] args) { Console con=new Console(); String name=con.console_string(); System.out.println("Hello "+name); //Εμφάνιση μηνύματος. class Console{ Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 15

Συνάρτηση main() Η συνάρτηση main() είναι το σημείο εκκίνησης του προγράμματος Καλείται από το λειτουργικό σύστημα Σε αυτή τη συνάρτηση μπορούμε να περάσουμε ορίσματα κατά την εκτέλεση του προγράμματος Μόνο μια main() σε κάθε πρόγραμμα!!! Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 16

Είσοδος από το πληκτρολόγιο /*Η κλάση HelloWorldApp υλοποιεί ένα πρόγραμμα το οποίο απλά εμφανίζει "Hello name " στην οθόνη. */ public class HelloWorldApp { public static void main(string[] args) { Console con=new Console(); String name=con.console_string(); System.out.println("Hello "+name); //Εμφάνιση μηνύματος. class Console { Χρήση της κλάσης Console (σελ. 297 του βιβλίου) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 17

Έξοδος στην οθόνη /*Η κλάση HelloWorldApp υλοποιεί ένα πρόγραμμα το οποίο απλά εμφανίζει "Hello World!" στην οθόνη. */ import java.io.*; public class HelloWorldApp { public static void main(string[] args) { Console con=new Console(); String name=con.console_string(); System.out.println("Hello "+name); //Εμφάνιση μηνύματος. class Console { Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 18

Έξοδος στην οθόνη System.out.println( Πληροφορική ); System.out.print( Πληροφορική \n ); System.out.println(b); System.out.print( Hello +name); System.out.println(num1+ + +num2+ = +sum); Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 19

Προσοχή Η Java είναι case sensitive γλώσσα, π.χ. το HelloWorldApp δεν είναι το ίδιο με το helloworldapp To αρχείο.class θα πάρει το όνομα του από το όνομα της κλάσης που περιέχει την main(). Ένα πηγαίο αρχείο κώδικα μπορεί να έχει παραπάνω από μια κλάση. Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 20

Δημιουργία, μεταγλώττιση και εκτέλεση προγράμματος 1. Δημιουργία του πηγαίου αρχείου με τον κώδικα (π.χ. HelloWorldApp.java) 2. Μεταγλώττιση με την εντολή: javac HelloWorldApp.java Δημιουργείται το αρχείο HelloWorldApp.class (Java bytecodes ) 3. Εκτέλεση του προγράμματος με την εντολή: java HelloWorldApp Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 21

Βασικοί τελεστές 1. Ισότητα == 2. Ισότητα String equals(str1,str2) 3. Ανάθεση Τιμής = 4. Διάφορο!= 5. Modulo % 6. Λογικό ΚΑΙ && (and) 7. Λογικό Η (Or) 8. Άρνηση! 9. Αύξηση / Μείωση ++, +=, --, -= 10. Σύγκριση >, <, >=, <= Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 22

Μεταβλητές Δήλωση μεταβλητών type name; Παραδείγματα: byte largestbyte; short largestshort; int largestinteger; long largestlong; Αρχικοποίηση: Κατά την δήλωση: int myint=5; Μετά την δήλωση: int myint; myint=5; Σταθερή τιμή τελεστής final final int myint=6; Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 23

Μεταβλητές String Είναι μεταβλητές που αποθηκεύουν αλφαριθμητικά Έχουν μεταβλητό μέγεθος Π.χ. String myname= George ; Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 24

Τύποι μεταβλητών Τύπος byte short int long float double char boolean Απαίτηση σε μνήμη 8-bit 16-bit 32-bit 64-bit 32-bit 64-bit 16-bit 1-bit true or false Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 25

Μετατροπές Τύπων Μεταβλητών (Casting) Ρητή μετατροπή τύπου Μεταβλητή = (Νέος τύπος)(έκφραση προς μετατροπή) Π.χ. short count = (short)intcount; (char)age / (int)letter Συναρτήσεις Μετατροπής Τιμών Integer.parseInt(String_μεταβλητή) Double.parseDouble(String_Μεταβλητή) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 26

Πίνακες Συλλογή μεταβλητών ίδιου τύπου Δήλωση πίνακα: int idata[]; Δημιουργία πίνακα: idata=new int[10]; Ανάθεση τιμής: idata[8]=100; Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 27

Πίνακες πινάκων Μπορούμε να δηλώσουμε ένα πίνακα του οποίου το κάθε στοιχείο είναι ένας πίνακας int[][] amatrix = new int[4][]; amatrix[0] = new int[5]; amatrix[1] = new int[12]; int[][] bmatrix = new int[4][5]; Μήκος πίνακα: amatrix.length //μέγεθος κύριου πίνακα amatrix[0].length //μέγεθος 1 ου υπο-πίνακα Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 28

Εντολές ελέγχου Εντολή if/else Εντολή switch Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 29

Εντολή if/else Εντολή if/else if (συνθήκη) { εντολές else { εντολές Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 30

Εντολή if/else Εντολή if/else if (συνθήκη) { εντολές else if(συνθήκη2) { εντολές else { εντολές Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 31

Εντολή if/else Παράδειγμα if (testscore >= 90) { grade = 'A'; else if (testscore >= 80) { grade = 'B'; else if (testscore >= 70) { grade = 'C'; else if (testscore >= 60) { grade = 'D'; else { grade = 'F'; Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 32

Εντολή switch Εντολή switch switch(option) { case 1: case 2: case 3: default: Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 33

Εντολή switch Παράδειγμα switch (month) { case 1: System.out.println("January"); break; case 2: System.out.println("February"); break; case 3: System.out.println("March"); break;... case 12: System.out.println("December"); break; default: System.out.println("Hey, that's not a valid month!"); break; Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 34

Εντολές επανάληψης Εντολή while Εντολή do while Εντολή for Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 35

Εντολή while Εντολή while while (συνθήκη) { εντολές Αν η συνθήκη δεν ισχύει αρχικά οι εντολές δεν θα εκτελεστούν καμία φορά Οι εντολές πρέπει να αλλάζουν με κάποιον τρόπο την συνθήκη Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 36

Εντολή while Παράδειγμα while(i<5) { System.out.ptrintln( i= + (i++) ); Αποτέλεσμα(αρχικά i=1): i=1 i=2 i=3 i=4 Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 37

Εντολή while Παράδειγμα while(i<5) { System.out.ptrintln( i= + (++i) ); Αποτέλεσμα(αρχικά i=1): i=2 i=3 i=4 i=5 Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 38

Εντολή do while Εντολή do while do { εντολές while(συνθήκη); Οι εντολές θα εκτελεστούν τουλάχιστον μια φορά έστω και αν η συνθήκη δεν ισχύει αρχικά Οι εντολές πρέπει να αλλάζουν με κάποιον τρόπο την συνθήκη Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 39

Εντολή do while Παράδειγμα do { System.out.ptintln("i="+i); i=i+1; while (i < 5); Αποτέλεσμα(αρχικά i=1) i=1 i=2 i=3 i=4 Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 40

Εντολές επανάληψης Τι θα γίνει αν δεν αλλάζουμε την συνθήκη μέσα στις εντολές της επανάληψης??? Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 41

Εντολή for Εντολή for for (αρχικοποίηση; έλεγχος; αύξηση) { εντολές Είναι η ποιο ισχυρή εντολή επανάληψης Χρησιμοποιείται κυρίως όταν γνωρίζουμε από πριν τον αριθμό επαναλήψεων Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 42

Εντολή for Παράδειγμα for (int i = 1; i < 5; i++) { System.out.println("i="+i); Η εντολή μέσα στο for δεν αλλάζει την μεταβλητή i, αυτό γίνεται μέσα στην εντολή for Αποτέλεσμα: i=1 i=2 i=3 i=4 Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 43

Εντολές διακλάδωσης Εντολή break Εντολή continue Εντολή return Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 44

Εντολή break break; Οδηγεί την εκτέλεση του προγράμματος στο αμέσως εξωτερικό block Χρησιμοποιείται για να τερματίσει εντολές switch(όπως είδαμε πρίν), for, while, do..while Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 45

Εντολή break Παράδειγμα for (int i ; i < arrayofints.length; i++) { if (arrayofints[i] == searchfor) { foundit = true; break; εντολή_που_ακολουθεί_μετά_for; Όταν εκτελεστεί η εντολή break η εκτέλεση του προγράμματος θα συνεχίσει στην αμέσως επόμενη εντολή από το for Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 46

Εντολή continue continue; Χρησιμοποιείται για να προσπεράσουμε την τρέχουσα επανάληψη σε μια επαναληπτική εντολή for, while, do while Για παράδειγμα αν θέλουμε να τυπώσουμε τους αριθμούς από το 1 έως το 5 αλλά να προσπεράσουμε το 2. Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 47

Εντολή continue Παράδειγμα for(int i=1; i<=5; i++) { if(i==2) continue; System.out.println(i); Αποτέλεσμα: 1 3 4 5 Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 48

Εντολή return return; Χρησιμοποιείται για έξοδο από την συνάρτηση που εκτελείται Αν η συνάρτηση έχει επιστρεφόμενη τιμή τότε πρέπει να επιστρέφουμε μια τιμή του κατάλληλου τύπου (π.χ. return 3) Αν η συνάρτηση έχει επιστρεφόμενη τιμή void τότε αρκεί μια εντολή return για έξοδο από την συνάρτηση Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 49

Τερματισμός προγράμματος Ένα Java πρόγραμμα τερματίζεται όταν Εκτελεστεί η εντολή return της συνάρτησης main() Εκτελεστεί η εντολή System.exit(τιμή_επιστροφής); από οποιοδήποτε σημείο του προγράμματος Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 50

Χειρισμός λαθών Η Java χρησιμοποιεί τις εξαιρέσεις (exceptions) για να χειριστεί τα λάθη που πιθανώς συμβούν κατά την διάρκεια εκτέλεσης του προγράμματος Μηχανισμός Εξαιρέσεων: try { εντολές που ίσως προκαλέσουν λάθος; catch (τύπος_εξαίρεσης όνομα) { εντολές χειρισμού του λάθους; finally { εντολές που εκτελούνται είτε γίνει εξαίρεση είτε όχι; Κάθε try πρέπει να ακολουθείται από ένα catch. Η εντολή finally είναι προαιρετική Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 51

Χειρισμός λαθών Παράδειγμα try{ do{ System.out.print( Επιλογή(1-4): "); choice = con.console_int(); while(choice<1 choice>4); catch(numberformatexception e){ System.out.println(e.getMessage()); System.exit(-2); Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 52

Τύποι εξαιρέσεων που θα χρειαστούν NumberFormatException Η εφαρμογή ζητά εισαγωγή αριθμού και εισάγονται χαρακτήρες ArithmeticException Λάθος σε υπολογισμό π.χ. διαίρεση με το 0 IndexOutOfBounds www.infospoudes.gr Βγαίνουμε εκτός ορίων ενός πίνακα Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 53

Αντικείμενα Τα πραγματικά αντικείμενα έχουν δύο κύρια χαρακτηριστικά: Κατάσταση (state) Συμπεριφορά (behavior ) Παράδειγμα: ένα αυτοκίνητο (το αντικείμενό), έχει κατάσταση (ταχύτητα, επιτάχυνση, κυβισμός, κ.τ.λ.) και συμπεριφορά (μπορεί να επιβραδύνει, μπορεί να επιταχύνει κ.τ.λ.) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 54

Αντικείμενα Τα αντικείμενα στη Java έχουν δημιουργηθεί για να μοντελοποιούν τα πραγματικά αντικείμενα Έτσι έχουν και αυτά κατάσταση (state) και συμπεριφορά (behavior ) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 55

Κλάσεις Στον πραγματικό κόσμο υπάρχουν πολλά αντικείμενα του ίδιου είδους, τότε λέμε αυτά ανήκουν στην ίδια κλάση. Αντίστοιχα και οι κλάσεις της Java είναι αναπαράσταση αντικειμένων του ίδιου είδους (π.χ. η κλάση car μπορεί αναπαριστά αυτοκίνητα) Απεικόνιση της κλάσης: Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 56

Κλάσεις vs Αντικείμενα Οι κλάσεις είναι ένα «καλούπι» για την δημιουργία αντικειμένων Ένα αντικείμενο είναι η περίσταση (instance) μιας κλάσης Π.χ. Κλάση car Αντικείμενα: goergecar, yourcar, κ.τ.λ. Π.χ. Κλάση human Αντικείμενα: nick, george, κ.τ.λ. Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 57

Παράδειγμα κλάσης class Human { static int arithmοspodion=2; private String name; private int ilikia; private float baros; private float ypsos; // public Human() { System.out.println("Human Constructor 1"); // public Human(String name,int ilikia, float baros, float ypsos) { System.out.println("Human Constructor 2"); this.name=name; this.ilikia = ilikia; this.baros = baros; this.ypsos = ypsos; Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 58

Δημιουργία αντικειμένου Για να δημιουργήσουμε ένα αντικείμενο μιας κλάσης χρησιμοποιούμε τον τελεστή new Π.χ. Human nikos=new Human(); Human dimitris=new Human(23,75,1.80); Όταν δημιουργούμε ένα αντικείμενο αυτόματα καλείται ο constructor της κλάσης Για να προσπελάσουμε μια μέθοδο γράφουμε: dimitris.getname(); Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 59

Προσπέλαση γνωρισμάτων κλάσης www.infospoudes.gr Τα γνωρίσματα μιας κλάσης μπορούν να είναι(το ίδιο και οι μέθοδοι): public private protected Για να προσπελάσουμε ένα γνώρισμα πρέπει να έχουμε κατασκευάσει ένα αντικείμενο εκτός αν αυτό είναι static Π.χ. δεν μπορούμε να γράψουμε Human.getName(); Λάθος Αντίθετα το dimitris.getname(); είναι σωστό Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 60

Static γνωρίσματα και μέθοδοι Με την λέξη κλειδί «static» ορίζουμε ένα όρισμα ή μια μέθοδο η οποία είναι κοινή για όλα τα αντικείμενα της κλάσης Π.χ. αν θέλουμε να εισάγουμε ένα χαρακτηριστικό για τον αριθμό των ποδιών του ανθρώπου, αυτό μπορεί να είναι static καθώς είναι κοινό για κάθε άνθρωπο Τα static γνωρίσματα μπορούμε να τα προσπελάσουμε κατευθείαν από την κλάση ή από κάποιο αντικείμενο της κλάσης Π.χ. Human.arithmosPodion Π.χ. nikos.arithmospodion Αν αλλάξει η τιμή μιας static μεταβλητής αλλάζει για όλα τα αντικείμενα της κλάσης Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 61

Προχωρημένα θέματα Abstarct κλάσεις Interfaces Κληρονομικότητα Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 62

Αρχεία Είδη αρχείων Αρχεία text (CS) Αρχεία binary (BS) Χρήση αρχείων Άνοιγμα Αρχείου Ανάγνωση / Εγγραφή Ανάγνωση ή και Επεξεργασία Αρχείου Εισαγωγή / Ανανέωση Στοιχείων Κλείσιμο Αρχείου Ποτέ μην το ξεχνάμε!!! Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 63

Κατηγορίες Θεμάτων Μαθηματικά Υπολογισμός ΜΟ / Επαλήθευση Εξίσωσης / Ψευδό - Κρυπτογράφηση Αντιστοίχηση Χαρακτήρων Επίπεδες Βάσεις Δεδομένων - Αρχεία Π.χ. πελάτες με δομή στοιχείων (όνομα/επίθετο/τηλέφωνο ) Π.χ. φάρμακα με δομή στοιχείων (όνομα/στοκ/τιμή) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 64

1 ο Παράδειγμα Χ^n+Υ^n+Ζ^n+W^n= (XYZW) Δοκιμή όλων των 4αδων ακεραίων αριθμών με χρήση 4απλού for Ο κώδικας: xyzw.java(λύση προβλήματος) Console.java(για είσοδο δεδομένων) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 65

2 ο Παράδειγμα Εύρεση του Μ.Ο. των Μ.Ο. των άρτιων γραμμών Αποθήκευση των αριθμών σε πίνακα mxn με χρήση διπλού for Εύρεση των μέσων όρων των αρτίων γραμμών και αποθήκευση σε νέο πίνακα Εύρεση του μέσου όρου των στοιχείων αυτού του πίνακα Κώδικας: mo.java (λύση προβλήματος) Console.java (για είσοδο δεδομένων) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 66

3 ο Παράδειγμα www.infospoudes.gr Αποκρυπτογράφηση Αρχείου Αρχείο με το κρυπτογραφημένο κείμενο Πίνακας (ή αρχείο) με τις αντιστοιχίες Βήματα επίλυσης: Ανάγνωση του κειμένου ανά χαρακτήρα Εύρεση του χαρακτήρα στις αντιστοιχίες Τύπωση του αντίστοιχου χαρακτήρα Κώδικας: DecryptFile.java EncryptFile.java(αντίστροφο) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 67

4 ο Παράδειγμα Επίπεδη βάση Εισαγωγή στοιχείων σε επίπεδη βάση δεδομένων Χρήση του RandomAccessFile και των συναρτήσεων writex Ανάγνωση μιας τυχαίας εγγραφής Χρήση του RandomAccessFile και των συναρτήσεων seek για μετακίνηση στην επιθυμητή εγγραφή και των readx για ανάγνωση των στοιχείων Κώδικας: DBFile.java (επίλυση προβλήματος) Console.java (για είσοδο δεδομένων) Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 68

Τέλος Παρουσίασης Περισσότερα στο internet java.sun.com (The Java Tutorial) Ευχαριστώ για την προσοχή σας Καλή επιτυχία Πειραιάς 6/12/2005 Σικαλιάς Γιώργος 69