Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τύποι δεδομένων και τελεστές,
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΘΕΩΡΙΑ ΔΙΑΛΕΞΗ 4 Αριθμητικές εκφράσεις και πράξεις Εντολές ανάθεσης
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Αντικείμενα, Κλάσεις και Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΛΕΣΤΕΣ - ΕΚΦΡΑΣΕΙΣ ΜΑΘΗΜΑ 4.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Methods, Constructors and Field.
Τελεστές (operators) – Εκφράσεις (expressions)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Syntax and Style.
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Αντικειμενοστραφής Προγραμματισμός & JAVA
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Μέθοδοι Μέθοδοι Δημιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων.
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Κλάσεις ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Εισαγωγή στον Προγ/μό Η/Υ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Δεδομένα, μεταβλητές, υπολογισμοί
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Κλάσεις και αντικείμενα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Εισαγωγή στον Προγ/μό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Τύποι δεδομένων και τελεστές,
Υπο-τύποι και πολυμορφισμός
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Μεταγράφημα παρουσίασης:

Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-2 Στόχοι: l Ανασκόπηση των primitive data types l Μαθαίνουμε πως να ορίζουμε fields και local variables l Μαθαίνουμε για arithmetic operators, compound assignment operators, και increment / decrement operators l Μαθαίνουμε πως να αποφεύγουμε κοινά λάθη in arithmetic

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-3 Μεταβλητές (Variables) l μια μεταβλητή (variable) είναι ένα “named container” που κρατά μια τιμή. Για παράδειγμα. q = q; σημαίνει: 1. Διάβασε την τρέχων τιμή του q 2. Αφαίρεσε 100 από αυτήν 3. Γράψε το αποτέλεσμα ξανά στο q count mov ax,q mov bx,100 sub bx,ax mov q,bx

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-4 Variables (συνέχ.) l Variables μπορεί να είναι διαφορετικών data types: int, char, double, boolean, κτλ. l Variables μπορεί να κρατούν objects; Τότε ο τύπος τους είναι the class αυτού του object. l Ο προγραμματιστής δίνει ονόματα στις variables. l Τα ονόματα τους συχνά αρχίζουν με μικρό γράμμα και κάθε επόμενη λέξη μέσα στο όνομα αρχίζει με κεφάλαιο γράμμα.

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-5 Variables (συνέχ.) l Μια variable πρέπει να οριστεί ΠΡΙΝ χρησιμοποιηθεί: int count; double x, y; JButton go; FallingCube cube; String firstName; Declarations Type Name(s)

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-6 Variables (συνέχ.) l Ο τελεστής της ανάθεσης (assignment operator) είναι το = και θέτει τιμή (value) στη μεταβλητή: l Μια variable μπορεί να αρχικοποιηθεί (initialized) κατά τον ορισμό της: count = 5; x = 0; go = new JButton("Go"); firstName = args[0]; Assignments int count = 5; JButton go = new JButton("Go"); String firstName = args[0]; Declarations with initialization

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-7 Variables (συνέχ.) l κάθε variable έχει Εμβέλεια (scope) — είναι η περιοχή στο source code όπου είναι «ορατή» (“visible”) l Αν χρησιμοποιήσεις μια variable εκτός its scope, ο compiler αναφέρει ένα syntax error. l Variables μπορούν να έχουν το ίδιο όνομα. Προσοχή: αυτό μπορεί να γίνει μόνο όταν οι εμβέλεις τους ( their scopes) δεν τέμνονται. { int k;... } { int k;... }

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-8 Fields vs. Local Variables l Τα πεδία (Fields) ορίζονται ΕΚΤΩΣ όλων των constructors και methods. l Οι τοπικές μεταβλητές (Local variables) ορίζονται ΕΝΤΩΣ ενός constructor ή μιας method.

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-9 Fields vs. Local Variables (συνέχ.) l Τα Fields συνήθως are grouped together, είτε στην αρχή είτε στο τέλος του class. l The scope ενός field είναι σε Ολόκληρο το class, (ανεξαρτήτως του αν ορίζεται στην αρχή ή στο τέλος του class)

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-10 Fields public class SomeClass { } Fields Constructors and methods public class SomeClass { } Scope Fields Constructors and methods

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-11 Local Variables l Οι τοπικές μεταβλητές (Local variables) ορίζονται ΕΝΤΩΣ a constructor or a method. l Οι Local variables ΧΑΝΟΥΝ τις τιμές τους και καταστρέφονται όταν constructor ή η method τελειώσει. l The scope μιας local variable είναι από το σημείο του ορισμού της μέχρι (down to) the closing brace of the block στο οποίο έχει οριστεί.

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-12 Local Variables (συνέχ.) public class SomeClass {... public SomeType SomeMethod (...) { }... } Local variable declared Local variable Scope

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-13 Variables (συνέχ.) l Χρησιμοποιούμε local variables όπου χρειάζεται. ΜΗΝ χρησιμοποιείτε fields όπου θα πρέπει να χρησιμοποιήσετε local variables. l Να δίνετε χαρακτηριστικά ονόματα στα fields, έτσι που να είναι ΔΙΑΦΟΡΕΤΙΚΑ από αυτά των local variables. l Καλό είναι να χρησιμοποιείτε το ΙΔΙΟ όνομα σε local variables που χρησιμοποιούνται με παρόμοιο τρόπο σε διαφορετικές methods (π.χ., x, y αντιπροσωπεύουν συντεταγμένες, count για ένα counter, i, k για δείκτες, κτλ.).

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-14 Variables (συνέχ.) l Common mistakes: public void SomeMethod (...) { int x;... int x = 5; // should be: x = 5;... Variable declared twice — syntax error

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-15 Variables (συνέχ.) l Κοινά λάθη: private int cubeX;... public SomeClass(...) // constructor { int cubeX = 5; // should be: cubeX = 5;... A field is overridden by a local variable; the value of the field cubeX remains unset

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-16 Primitive Data Types l int l double l char l boolean l byte l short l long l float Used in Java Methods

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-17 Constants 'A', '+', '\n', '\t' // char - 99, 2010, 0 // int 0.75, , 8.,.5 // double new line tab

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-18 Constants (συνέχ.) private final int delay = 30; private final double aspectRatio = 0.7; l Symbolic constants είναι ουσιαστικά αρχικοποιημένες final variables:

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-19 Constants (συνέχ.) l Γιατί είναι καλό να χρησιμοποιούμε symbolic constants? –Είναι πιο εύκολο να αλλάζουμε τις τιμές τους όταν είναι απαραίτητο –Εύκολα μπορούν να μετατραπούν σε variable –Πιο ευανάγνωστος ο κώδικας μας, self- documenting code –Επιπρόσθετος έλεγχος data type

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-20 Αριθμητική (Arithmetic) Τελεστές (Operators): +, -, /, *, % l Η προτεραιότητα (precedence) των τελεστών και των παρενθέσεων είναι η ίδια όπως και στην άλγεβρα. l m % n σημαίνει το υπόλοιπο (remainder) όταν το m διαιρείται από το n (π.χ., 17 % 5 είναι 2). % έχει την ίδια προτεραιότητα όπως / και * l Της ίδια προτεραιότητας δυαδικοί τελεστές (binary operators) εκτελούνται με την σειρά από αριστερά προς τα δεξιά.

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-21 Arithmetic (συνέχ.) l Ο τύπος των αποτελεσμάτων (result) καθορίζεται από τους τύπους (types) των τελεστέων (operands), ΟΧΙ από τις τιμές τους. Αυτός ο κανόνας χρησιμοποιείται σε Όλα τα ενδιάμεσα αποτελέσματα σε μια έκφραση (expressions). l Αν ένας τελεστέος είναι τύπου int και ο άλλος είναι τύπου double, το αποτέλεσμα είναι τύπου double. Αν και οι δυο τελεστέοι είναι τύπου int, το αποτέλεσμα είναι επίσης τύπου int.

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-22 Arithmetic (συνέχ.) Προσοχή: αν a και b είναι ints, τότε a / b truncated σε int… 17 / 5 δίνει 3 3 / 4 δίνει 0 l …ακόμα και αν αναθέτεις το αποτέλεσμα σε ένα double: double ratio = 2 / 3; The double type of the result doesn’t help: ratio still gets the value 0.0.

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-23 Arithmetic (συνέχ.) l Για να πάρουμε το σωστό αποτέλεσμα τύπου double, πρέπει να χρησιμοποιήσουμε double constants ή the cast operator: double ratio = 2.0 / 3; double ratio = 2 / 3.0; double factor = (double) m / (double) n; double factor = m / (double) n; double r2 = k / 2.0; double r2 = (double) k / 2; Casts

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-24 Arithmetic (συνέχ.) Προσοχή: the range for ints is from to (about - 2·10 9 to 2·10 9 ) l Overflow ΔΕΝ ανιχνεύεται από τον Java compiler ή interpreter n = 8 10^n = n! = n = 9 10^n = n! = n = 10 10^n = n! = n = 11 10^n = n! = n = 12 10^n = n! = n = 13 10^n = n! = n = 14 10^n = n! =

Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-25 Arithmetic (συνέχ.) l Use compound assignment operators: a = a + b; a += b; a = a - b; a -= b; a = a * b; a *= b; a = a / b; a /= b; a = a % b; a % = b; l Use increment and decrement operators: a = a + 1; a ++ ; a = a - 1; a -- ; Do not use these in larger expressions