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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προγραμματισμός Ι (αποφύγετέ τον!) 3) Διακοπτόμενος βρόχος: (αποφύγετέ τον!) float energy;......while(TRUE){drink_water(); if(energy
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, toString Αντικείμενα ως παράμετροι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εντολες Επιλογης (Selection)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Προγραμματισμός ΙΙ Διάλεξη #7: Περισσότερες Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές Εξαιρέσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
Διαφάνειες παρουσίασης #2
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Βασικά στοιχεία της Java
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη. Αθήνα, 2015.
Αντικειμενοστραφής Προγραμματισμός Ι
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
for (παράσταση_1; παράσταση_2; παράσταση_3)
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγ/μό Υπολογιστών
Κεφάλαιο 10 Streams.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

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

Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής “+” μας επιτρέπει την συνένωση Υπάρχουν πολλές χρήσιμες μέθοδοι της κλάσης String. length(): μήκος του String equals(String x): τσεκάρει για ισότητα trim(): αφαιρεί κενά στην αρχή και το τέλος του string. split(char delim): σπάει το string σε πίνακα από strings με βάσει το χαρακτήρα delim. Μέθοδοι για να βρεθεί ένα υπο-string μέσα σε ένα string. Κλπ.

Παράδειγμα με Strings public class StringProcessingDemo { public static void main(String[] args) { String sentence = "I hate text processing!"; int position = sentence.indexOf("hate"); String ending = sentence.substring(position + "hate".length( )); System.out.println(" "); System.out.println(sentence); System.out.println("The word \"hate\" starts at index " + position); sentence = sentence.substring(0, position) + "adore" + ending; System.out.println("The changed string is:"); System.out.println(sentence); } Τα Strings είναι αμετάβλητα (immutable) αντικείμενα Όταν κάνουμε ανάθεση δημιουργούνται και αντιγράφονται από την αρχή

Ρευματα εισόδου/εξόδου Τι είναι ένα ρεύμα? Μια αφαίρεση που αναπαριστά μια πηγή (για την είσοδο), ή ένα προορισμό (για την έξοδο) χαρακτήρων Αυτό μπορεί να είναι ένα αρχείο, το πληκτρολόγιο, η οθόνη. Όταν δημιουργούμε το ρεύμα το συνδέουμε με την ανάλογη πηγή, ή προορισμό.

Είσοδος & Έξοδος Τα βασικά ρεύματα εισόδου/εξόδου είναι έτοιμα αντικείμενα τα οποία ορίζονται σαν πεδία (στατικά) της κλάσης System System.out System.in System.err Μέσω αυτών και άλλων βοηθητικών αντικειμένων γίνεται η είσοδος και έξοδος δεδομένων ενός προγράμματος. Μια εντολή εισόδου/εξόδου έχει αποτέλεσμα το λειτουργικό να πάρει ή να στείλει χαρακτήρες από/προς την αντίστοιχη πηγή/προορισμό.

Έξοδος Μπορούμε να καλέσουμε τις συναρτήσεις: println(String s): για να τυπώσουμε ένα αλφαριθμητικό s και τον χαρακτήρα ‘\n’ print(String s): τυπώνει το s αλλά δεν αλλάζει γραμμή printf: Formatted output printf(“%d”,myInt); // τυπώνει ένα ακέραιο printf(“%f”,myDouble); // τυπώνει ένα πραγματικό printf(“%.2f”,myDouble); // τυπώνει ένα πραγματικό με δύο δεκαδικά

Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.Scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in); Μπορούμε να καλέσουμε μεθόδους για να διαβάσουμε κάτι από την είσοδο nextLine(): διαβάζει μέχρι να βρει τον χαρακτήρα ‘\n’ next(): διαβάζει το επόμενο String nextInt(): διαβάζει τον επόμενο int nextDouble(): διαβάζει τον επόμενο double.

Παράδειγμα import java.util.Scanner; class TestIO { public static void main(String args[]) { Scanner input = new Scanner(System.in); String line = input.nextLine(); System.out.println(line); }

Παράδειγμα import java.util.Scanner; class TestIO2 { public static void main(String args[]) { Scanner input = new Scanner(System.in); Double d = input.nextDouble(); System.out.println("Division = " + d/3); System.out.println("1+ Division = " +1 + d/3); System.out.printf("1+ Division = %.2f", 1+d/3); }

Λογικοί τελεστές Έλεγχος για βασικούς τύπους Α,Β: Ισότητας: (Α == Β) Ανισότητας: (Α != Β) Μεγαλύτερο/Μικρότερο ή ίσο: (Α = Β) Λογικοί τελεστές για λογικές εκφράσεις Άρνηση: !Β ΚΑΙ: (Α && Β) Ή: (Α || Β)

 Στη Java το if statement έχει το ακόλουθο συντακτικό: if (condition) { statement(s); }  Αν η λογική συνθήκη είναι αληθής το statement εκτελείται; Αν όχι, το statement προσπερνιέται Διακλαδώσεις– Το if Statement statement condition false true

Βρόγχοι – Το if-else statement Προσθέτοντας ένα else clause στο if statement παίρνουμε το if-else statement: if (condition) { statement(s)1;} else { statement(s)2;} Αν η συνθήκη είναι αληθής τότε το statement1 εκτελείται; Αν η συνθήκη είναι ψευδής τότε το statement2 εκτελείται Το σώμα του if statement ή του else statement μπορεί να είναι ένα άλλο if statement (φωλιασμένο (nested) if statement) Προσοχή: ένα else clause ταιριάζει με το τελευταίο ελεύθερο if ( indentation implies) statement1 condition false true statement2

Προσοχή! if( i == j ) if ( j == k ) System.out.print( “i equals k”); else System.out.print( “i is not equal to j”); if( i == j ) { if ( j == k ) System.out.print( “i equals k”); } else System.out.print(“i is not equal to j”); // Correct! WRONG!CORRECT! Πάντα να βάζετε { } στο σώμα των if-else statements.

Ένα while statement έχει το εξής συντακτικό: Initialize the conditions while (condition){ statement(s); } Αν η συνθήκη είναι αληθής, το statement εκτελείται; Μετά η συνθήκη αξιολογείται εκ νέου Τα Statements υλοποιούν τις επαναλήψεις και αλλάζουν την συνθήκη. Το statement εκτελείται μέχρι η συνθήκη να γίνει ψευδής Βρόγχοι - While statement statement condition false true

Επανάληψη – for statement Ένα for statement έχει το ακόλουθο συντακτικό: for (initialization; condition; update) {statement(s);} Το όρισμα του for έχει 3 κομμάτια χωρισμένα με ; Την αρχικοποίηση (initialization section): εκτελείται πάντα μία μόνο φορά Τη λογική συνθήκη (condition): εκτιμάται πριν από κάθε επανάληψη. Την ενημέρωση (update expression): υπολογίζεται μετά το κυρίως σώμα της επανάληψης. condition initialization statement update true false

Ένα do while statement έχει το εξής συντακτικό: Initialize the conditions do { statement(s); } while (conditions); To statement εκτελείται τουλάχιστον μία φορά; Μετά αν η συνθήκη είναι αληθής το statement εκτελείται ξανά. Τα statements εκτελούν το βρόγχο και αλλάζουν την συνθήκη. Το Do-While statement statement condition false true

import java.util.Scanner; class FlowTest { public static void main(String[] args) { Scanner reader = new Scanner(System.in); int inputInt = reader.nextInt(); while (inputInt != 0) { if (inputInt < 0 ){ for (int i = inputInt; i < 0; i ++) { System.out.println("Counter = " + i); } } else if (inputInt > 0){ for (int i = inputInt; i > 0; i --) { System.out.println("Counter = " + i); } inputInt = reader.nextInt(); }

Scope μεταβλητών Η κάθε μεταβλητή που ορίζουμε έχει εμβέλεια (scope) μέσα στο block το οποίο ορίζεται. Μόλις βγούμε από το block η μεταβλητή χάνεται Ο compiler δημιουργεί στο stack ένα χώρο για το block το οποίο μετά εξαφανίζεται όταν το block τελείωσει.

Παράδειγμα με το scope μεταβλητών public static void main(String[] args) { int y = 1; int x = 2; for (int i = 0; i < 3; i ++) { y = i; int x = i+1; int z = x+y; System.out.println(“i = " + i); System.out.println(“y = “ + y); System.out.println(“z = “ + z); } System.out.println(“i = " + i); System.out.println(“z = " + z); System.out.println(“y = “ + y); System.out.println(“x = “ + x); } Ο κώδικας έχει λάθη σε τρία σημεία

Οι εντολές break και continue continue: Επιστρέφει τη ροή του προγράμματος στον έλεγχο της συνθήκης σε ένα βρόγχο. Βολικό για τον έλεγχο συνθηκών πριν ξεκινήσει η εκτέλεση του βρόγχου Π.χ., πώς θα τυπώναμε μόνο τους άρτιους αριθμούς? break: Μας βγάζει έξω από την εκτέλεση του βρόχου από οποιοδήποτε σημείο μέσα στον κώδικα. Κάποιοι θεωρούν ότι χαλάει το μοντέλο του δομημένου προγραμματισμού. Βολικό για να σταματάμε το βρόγχο όταν κάτι δεν πάει καλά.

Παράδειγμα while (…) { if (I don’t like something){ continue; } } // end of while loop while (…) { if (everything is ok){ }// end of if } // end of while loop while (…) { if (I should stop){ break; } } // end of while loop while (… && !StopFlag) { if (I should stop){ StopFlag = true; }else{ } } // end of while loop