4. Εισαγωγή στη Java

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

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

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

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

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

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

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

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

7. Δομές Ελέγχου (Control Statements)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

5. Ανασκόπηση αντικειμενοστραφούς προγραμματισμού

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

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

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

Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6)

Υπολογισμός - Εντολές Ελέγχου

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

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Περιεχόμενα. Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6) Τύποι Δεδομένων. Τελεστές. Αριθμητικές εκφράσεις

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

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

8. Μέθοδοι (Methods)

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

Υπολογισμός - Εντολές Επανάληψης

Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με τη Java

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

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

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

Διάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

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

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

A ΜΕΡΟΣ. 1 program Puppy_Dog; 2 3 begin 4 end. 5 6 { Result of execution 7 8 (There is no output from this program ) 9 10 }

JAVA TUTORIAL ΠΕΡΙΕΧΟΜΕΝΑ. ΚΕΦΑΛΑΙΟ 1. Τί κάνει τη Java να ξεχωρίζει; Εγκαθιστώντας τη Java

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

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αριθμητικοί υπολογισμοί χρησιμοποιούνται σε όλα σχεδόν τα προγράμματα

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

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

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

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

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

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

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

Μεταφραστής (Compiler)

Transcript:

ΠΠΜ 401 - Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής 4. Εισαγωγή στη Java Χειμερινό εξάμηνο 2014 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1

Θέματα Εισαγωγή στη γλώσσα προγραμματισμού Java Δημιουργία απλού προγράμματος σε Java Σχόλια σε προγράμματα Java Χρήση εντολών εισόδου/εξόδου Μνήμη και μεταβλητές Αριθμητικοί τελεστές και υπολογισμοί Προτεραιότητα αριθμητικών τελεστών Λογικές εκφράσεις και αποφάσεις Τελεστές συγκρίσεως και ισότητας Εντολές ελέγχου: διακλαδώσεις και βρόγχοι 2

Ανάπτυξης και εκτέλεση προγραμμάτων Java 3

Δημιουργία απλού προγράμματος σε Java Βασικοί τύποι προγραμμάτων Java Java Application Εκτελείται με τη χρήση της εντολής java από το παράθυρο εντολών (DOS command window ή Unix Shell) η οποία ξεκινά τη νοητή μηχανή της Java (Java Virtual Machine-JVM) Java Applet Εκτελείται μέσα από το περιβάλλον κάποιου web-browser (π.χ. Internet Explorer, Netscape, κ.λπ.), εφόσον είναι δυνατή και επιτρεπτή η εκτέλεση προγραμμάτων Java http://java.sun.com/docs/books/tutorial/getstarted/cupojava/win32.html 4

javac myfile.java IDE: Integrated Development Environment (π.χ. JBuilder, NetBeans, κλ.π.) java myfile Τυπική διαδικασία ανάπτυξης και εκτέλεσης προγραμμάτων Java: 5

Java Application Welcome.java public class Welcome { public static void main ( String args[ ]) { System.out.println("Welcome to CEE 401"); } } > javac Welcome.java > java Welcome Welcome to CEE 401 6

Java Applet import java.applet.applet; import java.awt.*; WelcomeApplet.java public class WelcomeApplet extends Applet { public void paint(graphics g) { g.setcolor(color.red); } } g.drawstring("welcome to CEE 401", 50, 35); > javac WelcomeApplet.java 7

Χρήση Applet σε ιστοσελίδα myapplet.html: <HTML> <HEAD> <TITLE> A simple program to run a Java Applet</TITLE> </HEAD> <BODY> Here the class myapplet is loaded: <P> <APPLET CODE= WelcomeApplet.class" WIDTH=300 HEIGHT=100 align=center> </APPLET> </BODY> </HTML> 8

Δημιουργία, μεταγλώττιση και εκτέλεση προγράμματος Java Δημιουργία πηγαίου κώδικα (source code) Το αρχείο πρέπει να έχει επέκταση.java, π.χ. Welcome.java Ένα αρχείο (file) που έχει μία public class πρέπει απαραίτητα να έχει το ίδιο όνομα με το όνομα της κλάσης (τάξης) συν την.java επέκταση Μεταγλώττιση προγράμματος Java Ανοίγοντας ένα παράθυρο εντολών (command prompt window), αφού πάτε στο directory όπου βρίσκεται το αρχείο, πληκτρολογήστε: > javac filename (π.χ. javac Welcome.java) Αν δεν υπάρχουν λάθη δημιουργείται το αρχείο Welcome.class Το αρχείο αυτό περιέχει bytecodes τα οποία μπορούν να εκτελεστούν από οποιοδήποτε JVM, ασχέτως του τύπου του Η/Υ στον οποίο τρέχει Εκτέλεση ενός προγράμματος > java Welcome Η εντολή java ξεκινά την JVM, φορτώνει τα bytecodes του Welcome.class και, αφού κάνει κάποιους ελέγχους, τα εκτελεί καλώντας πρώτα τη μέθοδο main 9

Είδη σχολίων σε προγράμματα Java //.. /*.......*/ /**..*/ Javadoc > javadoc Welcome1.java 10

11

Είδη σχολίων σε προγράμματα Java //.. /*.......*/ /**..*/ Javadoc > javadoc Welcome1.java 12

Εκτύπωση (output) 1 // Fig. 2.3: Welcome2.java 2 // Printing a line of text with multiple statements. 3 4 public class Welcome2 5 { 6 // main method begins execution of Java application 7 public static void main( String args[] ) 8 { 9 System.out.print( "Welcome to " ); 10 System.out.println( "Java Programming!" ); System.out.print keeps the cursor on the same line, so System.out.println continues on the same line. 11 12 } // end method main 13 14 } // end class Welcome2 Welcome to Java Programming! 13

1 // Fig. 2.4: Welcome3.java Outline 2 // Printing multiple lines of text with a single statement. 3 4 public class Welcome3 5 { 6 // main method begins execution of Java application 7 public static void main( String args[] ) 8 { 9 System.out.println( "Welcome\nto\nJava\nProgramming!" ); 10 11 } // end method main 12 13 } // end class Welcome3 Welcome to Java Programming! 14

Ειδικοί χαρακτήρες εκτύπωσης (escape sequences) Escape sequence Description \n Newline. Position the screen cursor at the beginning of the next line. \t Horizontal tab. Move the screen cursor to the next tab stop. \r Carriage return. Position the screen cursor at the beginning of the current line do not advance to the next line. Any characters output after the carriage return overwrite the characters previously output on that line. \\ Backslash. Used to print a backslash character. \" Double quote. Used to print a double-quote character. For example, System.out.println( "\"in quotes\"" ); displays "in quotes" 15

1 // Fig. 2.6: Welcome4.java 2 // Printing multiple lines in a dialog box. 3 4 public class Welcome4 5 { 6 // main method begins execution of Java application 7 public static void main( String args[] ) 8 { 9 System.out.printf( "%s\n%s\n", 10 "Welcome to", "Java Programming!" ); System.out.printf displays formatted data. 11 12 } // end method main 13 14 } // end class Welcome4 Welcome to Java Programming! 16

1 // Fig. 2.7: Addition.java Είσοδος δεδομένων (input) Outline 2 // Addition program that displays the sum of two numbers. 3 import java.util.scanner; // program uses class Scanner 4 5 public class Addition 6 { 7 // main method begins execution of Java application 8 public static void main( String args[] ) 9 { 10 // create Scanner to obtain input from command window 11 Scanner input = new Scanner( System.in ); 12 13 int number1; // first number to add 14 int number2; // second number to add 15 int sum; // sum of number1 and number2 16 17 System.out.print( "Enter first integer: " ); // prompt 18 number1 = input.nextint(); // read first number from user 19 Read an integer from the user and assign it to number1. Δήλωση πακέτων (packages) πριν από τον ορισμό τάξεων import declaration imports class Scanner from package java.util. Declare and initialize variable input, which is a Scanner. Declare variables number1, number2 and sum. 17

Outline 20 System.out.print( "Enter second integer: " ); // prompt Addition.java 21 number2 = input.nextint(); // read second number from user 22 (2 of 2) 23 sum = number1 + number2; // add numbers 24 4. Addition 5. printf 25 System.out.printf( "Sum is %d\n", sum ); // display sum 26 27 } // end method main 28 29 } // end class Addition Read an integer from the user and assign it to number2. Calculate the sum of the variables number1 and number2, assign result to sum. Display the sum using formatted output. Enter first integer: 45 Enter second integer: 72 Sum is 117 Two integers entered by the user. 18

Παράδειγμα εισαγωγής δεδομένων import java.util.scanner; public class Dynamic1 { public static void main(string args[]) { double m, k, w; System.out.println("Provide the properties of a SDOF system:"); Scanner inputscanner = new Scanner(System.in); System.out.print(" Mass: m = "); m = inputscanner.nextdouble(); System.out.print(" Stiffness: k = "); k = inputscanner.nextdouble(); } } w = Math.sqrt(k/m); System.out.printf("%s m=%.3f and k=%.2f equals w=%5.3f", "The frequency of a SDOF with", m, k, w); 19

Βασικά/πρωταρχικά είδη μεταβλητών/δεδομένων (primitive data types) boolean (boolean value, true or false) char (2-byte, character - Unicode) byte (1-byte, signed integer) short (2-byte, signed short integer) int (4-byte, signed integer) long (8-byte, signed long integer) float (4-byte, floating point) double (8-byte, double precision floating point) 20

Μετατροπές (casting) βασικών/πρωτόγονων τύπων Είναι επιτρεπτός ο ορισμός της τιμής μιας μεταβλητής βασικού (primitive) τύπου σε μια μεταβλητή άλλου βασικού τύπου χωρίς explicit cast αν ο τύπος της πρώτης μεταβλητής είναι στα δεξιά του τύπου της δεύτερης στη πιο κάτω λίστα: byte < short < int < long < float < double Μεταβλητή τύπου char μπορεί να προαχθεί σε int, long, float ή double Μια μεταβλητή τύπου boolean δεν μπορεί να μετατραπεί σε άλλο τύπο Ο ορισμός της τιμής μιας μεταβλητής ανώτερου βασικού (primitive) τύπου σε μια μεταβλητή κατώτερου τύπου είναι επιτρεπτή μόνο όταν καθοριστεί η συγκεκριμένη μετατροπή (explicit casting), αφού έτσι χάνεται κάποια ακρίβεια, π.χ. int x = (int) 4.75; 21

Επιτρεπόμενες μετατροπές (casting) βασικών/πρωτόγονων τύπων Οι πιο κάτω μετατροπές μπορούν να γίνουν έμμεσα χωρίς explicit casting: 22

Μνήμη και μεταβλητές Κάθε μεταβλητή έχει όνομα, τύπο, μέγεθος και τιμή Η κάθε μεταβλητή αντιστοιχεί σε μία θέση στη μνήμη Όταν μια νέα τιμή δοθεί σε μία μεταβλητή τότε αυτή η τιμή αποθηκεύεται στην αντίστοιχη μνήμη και η προηγούμενη τιμή χάνεται Διαβάζοντας τιμές από την μνήμη δεν έχει καμία επίπτωση σε αυτές 23

Αριθμητικοί τελεστές * πολλαπλασιασμός (multiplication) / διαίρεση (division) % υπόλοιπο από διαίρεση (remainder) + και πρόσθεση και αφαίρεση Διαίρεση ακεραίων περικόπτει το υπόλοιπο 7 / 5 ισούται με 1 Ο τελεστής υπολοίπου (remainder) % δίνει το υπόλοιπο 7 % 5 ισούται με 2 Java operation Arithmetic operator Algebraic expression Addition + f + 7 f + 7 Subtraction p c p - c Multiplication * Bm b * m Java expression Division / x / y or or x y x / y 24

Προτεραιότητα βασικών τελεστών Operator(s) Operation(s) Order of evaluation (precedence) * / % + - Multiplication Division Remainder Addition Subtraction Evaluated first. If there are several operators of this type, they are evaluated from left to right. Evaluated next. If there are several operators of this type, they are evaluated from left to right. 25

Προτεραιότητα τελεστών: (βλέπε Appendix A) 26

Προτεραιότητα (precedence) και σχετικότητα (associativity) τελεστών (operators) Operators Associativity Type * / % left to right multiplicative + - left to right additive < <= > >= left to right relational ==!= left to right equality = right to left assignment Όταν τελεστές της ίδιας τάξης προτεραιότητας (precedence) παρουσιάζονται στην ίδια έκφραση, τότε η ιδιότητα της associativity καθορίζει με ποια σειρά θα εκτελεστούν. Όλοι οι τελεστές με την ίδια προτεραιότητα εκτελούνται από αριστερά στα δεξιά, εκτός από τους τελεστές ορισμού (assignment operators) 27

Παράδειγμα 28

Άμεση (ρητή) μετατροπή - Explicit casting Ο τελεστής (type) είναι διαθέσιμος για ρητή μετατροπή (explicit casting) ενός τύπου σε κάποιο άλλο: π.χ. 9 / 4 2 (double) 9 / 4 2.25 Ο τελεστής (type) είναι unary operator με προτεραιότητα ίση με τα unary + και -, και έχει precedence από δεξιά προς αριστερά 29

Λογικές εκφράσεις και αποφάσεις Έλεγχος αν η λογική έκφραση είναι αληθής (true) ή όχι (false) Εντολή διακλάδωσης if: Αν η λογική έκφραση που χρησιμοποιείται σαν συνθήκη είναι αληθής τότε εκτελείται η επόμενη εντολή ή η ομάδα εντολών που ακολουθούν μέσα σε { } Τελεστές ισότητας (equality) και συγκρίσεως (relational) μπορούν να χρησιμοποιηθούν σε λογικές εκφράσεις: Standard algebraic equality or relational operator Java equality or relational operator Sample Java condition Meaning of Java condition Equality operators == x == y x is equal to y!= x!= y x is not equal to y Relational operators > x > y x is greater than y < x < y x is less than y >= x >= y x is greater than or equal to y <= x <= y x is less than or equal to y 30

1 // Fig. 2.15: Comparison.java 2 // Compare integers using if statements, Outline relational operators 3 // and equality operators. 4 import java.util.scanner; // program uses class Scanner 5 6 public class Comparison 7 { 8 // main method begins execution of Java application 9 public static void main( String args[] ) 10 { 11 // create Scanner to obtain input from command window 12 Scanner input = new Scanner( System.in ); 13 14 int number1; // first number to compare 15 int number2; // second number to compare 16 17 System.out.print( "Enter first integer: " ); // prompt 18 number1 = input.nextint(); // read first number from user 19 20 System.out.print( "Enter second integer: " ); // prompt 21 number2 = input.nextint(); // read second number from user 22 23 if ( number1 == number2 ) 24 System.out.printf( "%d == %d\n", number1, number2 ); 25 26 if ( number1!= number2 ) 27 System.out.printf( "%d!= %d\n", number1, number2 ); 28 29 if ( number1 < number2 ) 30 System.out.printf( "%d < %d\n", number1, number2 ); Test for equality, display result using printf. Compares two numbers using relational operator < 31

31 32 if ( number1 > number2 ) Outline 33 System.out.printf( "%d > %d\n", number1, number2 ); 34 35 if ( number1 <= number2 ) Comparison.java 36 System.out.printf( "%d <= %d\n", number1, number2 ); 37 (2 of 2) 38 if ( number1 >= number2 ) 39 System.out.printf( "%d >= %d\n", number1, number2 ); 40 41 } // end method main 42 43 } // end class Comparison Program output Enter first integer: 777 Enter second integer: 777 777 == 777 777 <= 777 777 >= 777 Compares two numbers using relational operator >, <= and >=. Enter first integer: 1000 Enter second integer: 2000 1000!= 2000 1000 < 2000 1000 <= 2000 Enter first integer: 2000 Enter second integer: 1000 2000!= 1000 2000 > 1000 2000 >= 1000 32

Εντολές ελέγχου διακλάδωσης if (logical test) statement; if (logical test) { } statements. if (logical test) statement; else if (logical test) statement; else statement; switch (variable) { case value1: statements break; case value3: statements break; case value4: case value5: statements break; default: statements } 33

Εντολές ελέγχου επαναλήψεων (βρόγχων) for (initialization ; logical test; modification) statement; for (initialization ; logical test; modification) { } statements } while (logical test) statement; while (logical test) { statements do { statements; } while (logical test); 34

Γενικές Εισηγήσεις και Παρατηρήσεις Να γράφετε τα προγράμματα σας με τον πιο απλό δυνατό τρόπο και με ευκρίνεια ώστε να μπορεί κάποιος εύκολα να καταλάβει τι κάνετε Να χρησιμοποιείτε πάντα σχόλια και ομαδοποιήσεις/στοιχίσεις (indentation) Πάντα να δοκιμάζετε τα προγράμματα σας κάτω από όλες τις δυνατές περιπτώσεις και σε όλες τις πλατφόρμες που θα χρησιμοποιηθούν Να διαβάζετε τις περιγραφές των τάξεων της Java (documentation) και να είστε ενήμεροι με τις πολλές τους δυνατότητες Αν δεν είστε σίγουροι πώς να χρησιμοποιήσετε κάποια δυνατότητα της Java απλά δοκιμάστε μια απλή περίπτωση Προσέξτε όλα τα ενδεχόμενα λάθη κατά τη διάρκεια της μεταγλώττισης (compiletime errors or compilation errors) για να τα διορθώσετε με τη σειρά Λάθη όπως η διαίρεση με το μηδέν (division by zero) συμβαίνουν κατά την εκτέλεση ενός προγράμματος (runtime errors or execution-time errors) κάποια προκαλούν τερματισμό της εκτέλεσης (fatal runtime errors) κάποια δεν προκαλούν τερματισμό της εκτέλεσης (nonfatal runtime errors) προκαλώντας λανθασμένα αποτελέσματα, το οποίο είναι πιο επικίνδυνο 35

Εκτέλεση παρεχόμενων προγραμμάτων Java Από το συνοδευτικό CD του βιβλίου:.. \examples\ch01: cd ATM java ATMCaseStudy cd BouncingBall java BouncingBall cd GuessGame java GuessGame cd LogoAnimator java LogoAnimator cd TicTacToe java TicTacToeTest 36