Κεφάλαιο 15 Γλώσσα προγραμματισμού Java

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Κεφάλαιο 15 Γλώσσα προγραμματισμού Java"

Transcript

1 Κεφάλαιο 15 Γλώσσα προγραμματισμού Java Περιεχόμενα 15.1 Δομή της Java Βασικοί Τύποι Κλάσεις, Αντικείμενα, και Μέθοδοι Πίνακες Η κλάση String Κληρονομικότητα και Πολυμορφισμός Διασυνδέσεις και Αφηρημένες Κλάσεις Γενικοί Τύποι Ασκήσεις Βιβλιογραφία Δομή της Java Στο παρόν κεφάλαιο στόχος είναι να γίνει μια σύντομη επισκόπηση στη γλώσσα προγραμματισμού Java, ξεκινώντας την παρουσίαση από απλά δομικά στοιχεία της γλώσσας και φτάνοντας στην ανάλυση του αντικειμενοστρεφούς προγραμματισμού και των αρχών που το διέπουν, δίνοντας στον αναγνώστη ένα βοήθημα το οποίο θα καλύπτει πλήρως τα θέματα που παρουσιάζονται στα παρόντα κεφάλαια αυτού του βιβλίου. Θα πρέπει να αναφέρουμε πως θεωρούμε ότι ο αναγνώστης έχει κάποιες γνώσεις σε μία γλώσσα προγραμματισμού υψηλού επιπέδου. Ένα πρόγραμμα σε Java είναι ουσιαστικά μια κλάση, έστω class <Όνομα>, όπου το αρχείο που θα αποθηκεύει την κλάση αυτή θα είναι το <Όνομα>.java. Τα βασικά δομικά στοιχεία μιας κλάσης είναι τα πεδία, οι κατασκευαστές (constructors) και οι μέθοδοι (methods). Στην κλάση <Όνομα> θα πρέπει να περιέχεται μια μέθοδος main, η οποία είναι το σημείο εκκίνησης του προγράμματος. Ένα πρόγραμμα μπορεί να περιέχει περισσότερες από μία κλάσεις, όμως σε μία από αυτές θα πρέπει να υπάρχει η μέθοδος main. Ακολουθεί ένα παράδειγμα προγράμματος σε Java το οποίο δημιουργεί τυχαία σημεία στο επίπεδο, υπολογίζει την ευκλείδεια απόσταση μεταξύ δύο σημείων και κρατάει σε ένα πίνακα τα στοιχεία με τη μεγαλύτερη απόσταση. 280

2 Παράδειγμα 1. Δημιουργία ενός συνόλου από τυχαία σημεία στο επίπεδο. Στην Εικόνα 15.1 παρουσιάζόνται διαγραμματικά οι κλάσεις που υλοποιούνται στο Παράδειγμα 1 και ακολουθεί ο κώδικας σε Java. Πεδία int x; int y; Point2D Κατασκευαστής Point2D(int x, int y) Μέθοδοι getx() gety() tostring() double distto(point2d p) SetofPoints Πεδία Point2D[] Points; final int maxn = 100; int N = 0; double maxdist = 0; Κατασκευαστής SetofPoints() Μέθοδοι void addnewpoint(point2d p) double maxdistanceto(point2d p) void print() SetofPointsTest Μέθοδος void main() Εικόνα Περιγραφή των κλάσεων του Παραδείγματος 1. Αρχείο SetofPointsTest.java. import java.util.random; class Point2D { private int x; private int y; public Point2D(int x, int y) { this.x = x; this.y = y; public int getx(){ return x; public int gety(){ return y; public String tostring(){ return "x:"+getx()+" y:"+gety(); //public String tostring(){ return "x:"+x+" y:"+y; public double distto(point2d p) { double dx = (double)(this.x-p.x); double dy = (double)(this.y-p.y); return Math.sqrt(dx*dx+dy*dy); 281

3 class SetofPoints { Point2D[] Points; final int maxn = 100; int N = 0; double maxdist = 0; public SetofPoints() { Points = new Point2D[maxN]; public void addnewpoint(point2d p) { double dist = maxdistanceto(p); if (dist > maxdist) maxdist=dist; Points[N++] = p; double maxdistanceto(point2d p) { double dist = 0; double newdist = 0; for (int i=0; i<n; i++){ newdist = p.distto(points[i]); if (dist < newdist) dist=newdist; return dist; public void print(){ for(int i=0; i<points.length && Points[i]!=null; i++) System.out.println(Points[i]); public class SetofPointsTest { public static void main(string[] args){ int min=1; int max=10; Random rand = new Random(); Point2D p1 = new Point2D(rand.nextInt((max-min)+1) + min,rand.nextint((maxmin) + 1) + min); Point2D p2 = new Point2D(rand.nextInt((max-min)+1) + min,rand.nextint((maxmin) + 1) + min); System.out.println(p1); System.out.println(p1.distTo(p2)); SetofPoints S=new SetofPoints(); S.addNewPoint(p1); S.addNewPoint(p2); S.print(); 282

4 Βασικοί Τύποι Οι μεταβλητές, οι εκφράσεις, οι αναθέσεις, καθώς και η ροή ελέγχου στη Java είναι παρόμοιες με τις αντίστοιχες στις περισσότερες γλώσσες υψηλού επιπέδου. Σε αυτήν την ενότητα περιγράφουμε σχετικές λεπτομέρειες. Στον Πίνακα 15.1 αναφέρονται οι βασικοί τύποι δεδομένων που υποστηρίζει η Java. Πίνακας 15.1: Βασικοί τύποι δεδομένων της Java. Όνομα τύπου Τιμή Μνήμη boolean true/false 1 byte char Χαρακτήρας (Unicode) 2 bytes byte Ακέραιος 1 byte short Ακέραιος 2 bytes int Ακέραιος 4 bytes long Ακέραιος 8 bytes float Πραγματικός 4 bytes double Πραγματικός 8 bytes Στον Πίνακα 15.2 έχουμε συγκεντρώσει ορισμένες από τις βασικές προτάσεις που χρησιμοποιούνται κατά το προγραμματισμό με τη Java και, στη συνέχεια, θα τις αναλύσουμε περαιτέρω. Δήλωση. Μια μεταβλητή μπορεί να δηλωθεί ακολουθώντας οποιονδήποτε από τους παραπάνω βασικούς τύπους και θα πρέπει να δηλώνεται πάντα πριν από τη χρήση της. Οφείλουμε να σημειώσουμε ότι μια μεταβλητή μπορεί, επίσης, να είναι και άλλου τύπου, όπως είναι η κλάση String, στην οποία θα αναφερθούμε σε επόμενη ενότητα και η οποία, αν και δεν αποτελεί βασικό τύπο, χρησιμοποιείται ευρέως στη Java. Ανάθεση. Μια πρόταση ανάθεσης χρησιμοποιείται, για να αλλάξει μια μεταβλητή. Ο τελεστής ανάθεσης είναι το σύμβολο της ισότητας «=» και κάθε πρόταση αποτελείται από το όνομα μιας μεταβλητής αριστερά από το σύμβολο «=» και από μια σταθερή τιμή ανάλογα με τον τύπο της μεταβλητής ή από μία έκφραση, δεξιά του «=». Μια σταθερή τιμή μπορεί να είναι είτε κάποιο λεκτικό null, true, false, ένα αλφαριθμητικό, είτε μια τιμή int, float, double, char, ανάλογα με το τύπο πάντα της μεταβλητής. Μια έκφραση είναι μια σύνθεση λεκτικών και μεταβλητών μέσω τελεστών. Οι τελεστές που χρησιμοποιεί η Java είναι ο τελεστής ανάθεσης, όπως αναφέραμε και παραπάνω, είναι το σύμβολο της ισότητας «=», οι αριθμητικοί, λογικοί τελεστές, αυτοί της αύξησης/μείωσης αλλά και οι τελεστές σε μπιτ. Ακολουθεί μια επισκόπηση των τελεστών στη Java. 283

5 Αριθμητικοί + πρόσθεση - αφαίρεση * πολλαπλασιασμός / διαίρεση % υπόλοιπο ακεραίας διαίρεσης Λογικοί < μικρότερο από <= μικρότερο από ή ίσο με == ίσο με!= διαφορετικό >= μεγαλύτερο από ή ίσο με > μεγαλύτερο από! λογική άρνηση (not) && λογικό και (and) λογικό ή (or) Αύξησης/Μείωσης ++ αύξηση κατά ένα -- μείωση κατά ένα Μπιτ ή Δυαδικοί ~ συμπλήρωμα & λογικό και λογικό ή << αριστερή μπιτ ολίσθηση >> δεξιά μπιτ ολίσθηση 284

6 Επίσης, στη Java συναντούμε και ορισμένους ειδικούς τελεστές, όπως η εναλλακτική αποτίμηση υπό συνθήκη (?:), η εκχώρηση με πράξη (+=, -=, *=, /=, &=, %=) και ο τελεστής new για τη δημιουργία αντικειμένου. Πίνακας 15.2: Βασικές προτάσεις στη Java. Πρόταση Παράδειγμα Εξήγηση Δήλωση Ανάθεση Αρχικοποίηση Τελεστές αύξησης/μείωσης Δομή ελέγχου (if) Δομή ελέγχου (if-else) Δομή επανάληψης (while) Δομή επανάληψης (for) Κλήση μεθόδου Επιστροφή τιμής int i; double k; k=2; exp=math.sqrt(dx8dx+dy*dy); int i=0; double k=3.14; i++; j--; i+=1; j-=1 if (i <0) i++; if (i>j) m=i; else m=j; while ( u!= null ) { leftsize=(u.left!= null)? u.left.size:0; rightsize=(u.right!=null)?u.right.size:0; u.size = leftsize + rightsize + 1; u = u.parent; for(int i=0; i<10;i++) System.out.println(i); String line = input.nextint(); return true; Δημιουργία μιας ακέραιης μεταβλητής με όνομα i και μιας μεταβλητής κινητής υποδιαστολής με όνομα k. Ανάθεση σε μια μεταβλητή τιμή, είτε απευθείας είτε αποτιμώντας μια αριθμητική έκφραση. Ανάθεση μιας αρχικής τιμής σε μεταβλητές. i=i+1; j=j-1 Εάν η λογική έκφραση (i <0) είναι αληθής, τότε εκτελείται η εντολή i++; Εάν η λογική έκφραση (i >j) είναι ψευδής, τότε εκτελείται η εντολή m=j; Όσο η συνθήκη ( u!= null ) είναι αληθής, εκτελούνται οι εντολές μέσα στο block της while. Η δομή επανάληψης θα εκτελέσει την εντολή που είναι στο block της 10 φορές. Κλήση άλλων μεθόδων της Java Επιστροφή τιμής από μια μέθοδο. 285

7 Μπορούμε να αλλάξουμε τον τύπο μιας έκφρασης κάνοντας casting, μετατρέποντας δηλαδή τον τύπο της τιμής της έκφρασης σε ισοδύναμη τιμή άλλου τύπου. Η σύνταξη μετατροπής τύπου είναι: type var = (type) exp, όπου type είναι ο τύπος που επιθυμούμε να έχει η έκφραση exp. Για παράδειγμα, εάν η τιμή της έκφρασης είναι 5.3, θέτοντας (int) 5.3, το αποτέλεσμα θα είναι 5. Αρχικοποίηση. Μια δήλωση μεταβλητής μπορεί να συνδυαστεί και με μια ανάθεση αρχικής τιμής. Δομές ελέγχου και επανάληψης. Οι δομές ελέγχου και επανάληψης στη Java είναι ίδιες με αυτές των γλωσσών C και C++. Συνοπτικά οι δομές αυτές είναι οι εξής: if (λογική έκφραση) {Ακολουθία προτάσεων else {Ακολουθία προτάσεων while (λογική έκφραση) {Ακολουθία προτάσεων do {Ακολουθία προτάσεων while (λογική έκφραση) for (Αρχικοποίηση; λογική έκφραση; Ενημέρωση) {Ακολουθία προτάσεων switch (λογική έκφραση) {case 1: Ακολουθία προτάσεων; break; case n: Ακολουθία προτάσεων; break; default: Ακολουθία προτάσεων; break; Κάθε μία δομή ουσιαστικά ελέγχει μια λογική έκφραση εάν είναι αληθής (true) ή ψευδής (false). Η Java έχει εντολές που επιτρέπουν την αλλαγή της ροής ενός προγράμματος, τις return, break και continue Κλάσεις, Αντικείμενα, και Μέθοδοι Στην ενότητα αυτή παρουσιάζονται τα χαρακτηριστικά του αντικειμενοστραφούς προγραμματισμού της Java, που αποτελούν και τον πυρήνα της γλώσσας. Όπως αναφέρθηκε και στη εισαγωγή, ένα πρόγραμμα σε Java αποτελείται από μία ή περισσότερες κλάσεις. Η τιμή ενός τύπου κλάσης ονομάζεται αντικείμενο (object), όμως συνήθως αναφέρεται ως αντικείμενο της κλάσης ή ως στιγμιότυπο της κλάσης. Δεδομένου ότι μια κλάση αποτελείται από πεδία, κατασκευαστές και μεθόδους, ένα αντικείμενο είναι ένας συγκεκριμένος συνδυασμός αυτών. Ουσιαστικά τα πεδία είναι τα δεδομένα που κρατάει η κλάση, οι κατασκευαστές (constructors) είναι οι συναρτήσεις αρχικοποίησης αυτών των δεδομένων, ενώ οι μέθοδοι (methods) είναι οι ενέργειες επί των δεδομένων. Η σύνταξη μιας κλάσης είναι της μορφής: public class Όνομα_Κλάσης {Πεδία, Κατασκευαστές, Μέθοδοι Η κλάση αυτή αποθηκεύεται σε ένα αρχείο που έχει το ίδιο όνομα με την κλάση. Η λέξη κλειδί public ονομάζεται τροποποιητής της κλάσης και περιγράφει μια κλάση η οποία είναι ορατή σε κλάσεις που έχουν οριστεί σε άλλα αρχεία. Στο Παράδειγμα 1, έχουμε ορίσει τις κλάσεις Point2D, SetofPoints και SetofPointsTest. Στην αρχή κάθε κλάσης ορίζουμε τα δεδομένα που αντιπροσωπεύουν την κλάση. Η κλάση Point2D είναι μια κλάση που κρατάει δύο σημεία στο χώρο x και y, ενώ η κλάση SetofPoints κρατάει έναν πίνακα από σημεία, έναν πίνακα από αντικείμενα τύπου Point2D. Ένα νέο αντικείμενο δημιουργείται χρησιμοποιώντας τον τελεστή new. Στο παράδειγμά μας, η πρόταση SetofPoints S=new SetofPoints(); δημιουργεί ένα αντικείμενο της κλάσης SetofPoints με το 286

8 όνομα S. Ουσιαστικά, καλώντας τον τελεστή new αυτό που συμβαίνει είναι να δημιουργείται ένα νέο αντικείμενο της κλάσης δυναμικά στη μνήμη, όπου αρχικοποιούνται τα πεδία της κλάσης σε προκαθορισμένες τιμές. Έπειτα καλείται ο κατασκευαστής της κλάσης SetofPoints(), που δίνει τιμές στα πεδία της κλάσης και με την επιστροφή του κατασκευαστή επιστρέφεται μια αναφορά στο νέο αυτό αντικείμενο μέσω της μεταβλητής S. SetofPoints S=new SetofPoints(); Όνομα της Κλάσης Κλήση του Κατασκευαστή Στο παράδειγμά μας, στην κλάση SetofPointsTest δημιουργούμε αρχικά ένα αντικείμενο τύπου Random, δύο αντικείμενα τύπου Point2D, τα αντικείμενα p1 και p2, καθώς και ένα αντικείμενο τύπου SetofPoints. Στην Εικόνα 15.2 παρουσιάζεται σχηματικά η κατάσταση της μνήμης μετά τη δημιουργία αυτών των αντικειμένων. main min 1 max 10 rand p1 p2 S java.util.random instance Point2D x 2 Y 9 Point2D x 5 Y 7 SetofPoints Points null null null maxn 100 N 0 maxdisst 0.0 Εικόνα 15.2: Κατάσταση μνήμης μετά της δημιουργία των αντικειμένων του Παραδείγματος

9 Εάν θέλουμε να προσπελάσουμε τη μεταβλητή x, τυπώνοντας, για παράδειγμα, την τιμή της στη μέθοδο main, τότε θα χρησιμοποιήσουμε τον τελεστή «.» και θα γράψουμε την εντολή System.out.println(p1.x); Γενικότερα, για να προσπελάσουμε τα περιεχόμενα μιας κλάσης της οποίας έχουμε δημιουργήσει ένα αντικείμενο, χρησιμοποιούμε τον τελεστή τελεία «.» μετά το όνομα του αντικειμένου και ακολουθεί το πεδίο ή η μέθοδος της κλάσης που θέλουμε να προσπελάσουμε. Στη Java οι μέθοδοι (methods) είναι παρόμοιες με τις συναρτήσεις και τις διαδικασίες σε άλλες γλώσσες υψηλού επιπέδου. Η γενική σύνταξη μιας μεθόδου είναι η εξής: public Επιστρεφόμενος_Τύπος Όνομα_Μεθόδου (Λίστα Παραμέτρων) { Ακολουθία Προτάσεων Υπάρχουν δύο ειδών μέθοδοι, αυτές που επιστρέφουν μια τιμή και αυτές που είναι τύπου void, επιτελούν κάποιες ενέργειες, αλλά δεν επιστρέφουν μια τιμή. Έτσι, ο Επιστρεφόμενος_Τύπος μιας μεθόδου είναι είτε void είτε οποιοσδήποτε από τους βασικούς τύπους του Πίνακα 15.1, είτε ένας πίνακας είτε ακόμη και ένα αντικείμενο. Στην περίπτωση που η μέθοδος επιστρέφει ένα αντικείμενο ως Επιστρεφόμενος_Τύπος γράφουμε το όνομα του τύπου του αντικειμένου. Παρομοίως, και η λίστα παραμέτρων μπορεί να είναι οποιουδήποτε τύπου, είτε κενή, οπότε δεν δηλώνουμε τίποτε μέσα στις παρενθέσεις, είτε κάποιων από τους βασικούς τύπους του Πίνακα 15.1, είτε κάποια αντικείμενα. Στη περίπτωση που ως παράμετρο δηλώνουμε αντικείμενο, τότε στην παρένθεση γράφουμε το τύπου του αντικειμένου και ένα όνομα μεταβλητής. Για παράδειγμα, η δήλωση: Point2D example (int x, double k, SetofPoints P) Περιγράφει μια μέθοδο με όνομα example, η οποία επιστρέφει ένα αντικείμενο τύπου Point2D και ως παραμέτρους δέχεται μια μεταβλητή τύπου int με όνομα x, μια μεταβλητή τύπου double με όνομα k και ένα αντικείμενο τύπου SetofPoints με όνομα P. Στο παράδειγμά μας, η κλάση Point2D έχει τη μέθοδο public double distto(point2d p). Όπως και με τις μεταβλητές, έτσι και με τις μεθόδους, η κλήση μιας μεθόδου από μία κλήση γίνεται με τη βοήθεια του τελεστή «.» και υπό την προϋπόθεση ότι έχουν δημιουργηθεί αντικείμενα της κλάσης που περιέχει τη μέθοδο. Έτσι, η κλήση της μεθόδου distto πραγματοποιείται στη main ως εξής: p1.distto(p2). Παρατηρούμε ότι το αντικείμενο p2 τύπου Point2D μπαίνει ως όρισμα στη μέθοδο distto σύμφωνα με τη περιγραφή της μεθόδου. Παρατηρούμε στο παράδειγμά μας ότι αριστερά από τις δηλώσεις των πεδίων και των μεθόδων υπάρχουν οι δεσμευμένες λέξεις public, private, final. Ό,τι είναι ορισμένο ως public σε μία κλάση είναι προσβάσιμο από μία άλλη κλάση, ό,τι είναι ορισμένο ως private σε μία κλάση δεν είναι προσβάσιμο από μία άλλη κλάση, ενώ ό,τι είναι δηλωμένο ως final δεν μπορεί να παρακαμφθεί από άλλη κλάση. Ένας κατασκευαστής (constructor) είναι ένα ειδικό είδος μεθόδου, που χρησιμοποιείται για την αρχικοποίηση των πεδίων ενός αντικειμένου και καλείται κατά τη δημιουργία των αντικειμένων μιας κλάσης, δηλαδή με τη χρήση του τελεστή new. Ο κατασκευαστής σε μια κλάση έχει πάντα το ίδιο όνομα με την κλάση, δεν έχει τύπο επιστρεφόμενης τιμής και μπορεί 288

10 να πάρει είτε καμία είτε οσεσδήποτε παραμέτρους είναι αναγκαίες. Στο παράδειγμά μας οι κατασκευαστές που χρησιμοποιούμε δεν έχουν καμία παράμετρο. Μία κλάση μπορεί να έχει οσουσδήποτε κατασκευαστές, οι οποίοι θα διαφοροποιούνται στη λίστα των παραμέτρων. Κατά τη δημιουργία ενός αντικειμένου καλείται πάντα ένας κατασκευαστής, που ανάλογα με τις παραμέτρους που του θέτουμε καθορίζει και ποιος θα κληθεί από αυτούς που έχουν ορισθεί στην κλάση. Στο παράδειγμά μας, ο κατασκευαστής της κλάσης Point2D έχει δύο παραμέτρους, int x και int y, και η κλάση έχει δύο πεδία, int x και int y. Προκειμένου να εκχωρηθούν οι τιμές των παραμέτρων στα πεδία της κλάσης, χρησιμοποιούμε τη παράμετρο this. Η παράμετρος this είναι ένα είδος κρυφής παραμέτρου. Όταν καλείται μια μέθοδος, στη θέση της παραμέτρου this εισάγεται αυτομάτως το αντικείμενο κλήσης της μεθόδου. Επίσης, σε μια κλάση μπορεί να υπάρχουν μέθοδοι με το ίδιο όνομα. Ακόμη και μεταξύ δύο ή περισσοτέρων κλάσεων μπορεί να υπάρχουν μέθοδοι με το ίδιο όνομα. Αυτό ονομάζεται υπερφόρτωση (overloading). Κάθε μία από τις μεθόδους με το ίδιο όνομα, θα έχει τον ίδιο τύπο επιστρεφόμενης τιμής και θα διαφοροποιείται στη λίστα των παραμέτρων. Είναι, επίσης, σημαντικό να αναφέρουμε ότι η Java αποτελείται από ένα σύνολο από έτοιμες κλάσεις, τις οποίες ο προγραμματιστής έχει στη διάθεσή του. Στο παράδειγμά μας, χρησιμοποιούμε την κλάση Random (δείτε περιγραφή της κλάσης στο σχετικό σύνδεσμο: για να παραγάγουμε τυχαίους ακεραίους αριθμούς. Για να χρησιμοποιήσουμε την έτοιμη αυτή κλάση της Java, πρέπει στην αρχή του προγράμματος να δηλώσουμε import java.util.random; Η δήλωση αυτή εισάγει την κλάση Random από το πακέτο java.util. Η δήλωση αυτή έχει πληροφοριακό χαρακτήρα, δηλαδή ο κώδικας της Random δεν εισάγεται στην πραγματικότητα και το μέγεθος του αρχείου δε μεταβάλλεται. Με παρόμοιο τρόπο μπορούν να εισαχθούν όλα τα περιεχόμενα του πακέτου java.util, χρησιμοποιώντας τον ειδικό χαρακτήρα * ως εξής: import java.util.*; Στην περίπτωση που πρέπει να εισαχθούν περισσότερα πακέτα, είναι δυνατόν να εισαχθούν περισσότερες δηλώσεις import στην αρχή του αρχείου. Η κλάση Math είναι ένα ακόμη χαρακτηριστικό παράδειγμα έτοιμης κλάσης της Java, η χρήση της οποίας δεν απαιτεί κάποια δήλωση import. Η κλάση Math προσφέρει τυπικές μαθηματικές μεθόδους. Στο παράδειγμά μας χρησιμοποιήσαμε τη Math για τον υπολογισμό της τετραγωνικής ρίζας. Μερικές μέθοδοι της Math είναι οι εξής: double pow(double a, double b), double abs(double a), double min(double n1, double n2) double max(double n1, double n2) int round(double a) Η κλάση Math έχει, επίσης, δύο προκαθορισμένες σταθερές, την Ε και την PI. Η σταθερά PI, η οποία συμβολίζεται με το σύμβολο π στους μαθηματικούς υπολογισμούς, ισούται με Η σταθερά Ε αποτελεί τη βάση του φυσικού λογάριθμου, που συμβολίζεται με e στους μαθηματικούς τύπους και ισούται κατά προσέγγιση με Η παρακάτω έκφραση υπολογίζει το εμβαδόν του κύκλου δεδομένης της ακτίνας του: 289

11 E = Math.PI*radius*radius; Πίνακες Ένας πίνακας είναι μια δομή δεδομένων που χρησιμοποιείται για την επεξεργασία μιας συλλογής δεδομένων ίδιου τύπου, όπως είναι για παράδειγμα μια ακολουθία αριθμών τύπου int ή ακόμη ένα σύνολο αντικειμένων, όπως στο παράδειγμά μας ο πίνακας Points, που αποθηκεύει ένα σύνολο από αντικείμενα τύπου Point2D. Ένας τρόπος δήλωσης και αρχικοποίησης ενός πίνακα στη Java είναι ο εξής: Τύπος_Πίνακα[] Όνομα_Μεταβλητής = {val1, val2,, valn όπου ο Τύπος_Πίνακα μπορεί να είναι οποιοσδήποτε βασικός τύπος της Java (βλ. Πίνακας 15.1). Για παράδειγμα θεωρείστε τη παρακάτω δήλωση ενός πίνακα με άρτιους ακεραίους αριθμούς: int[] oddn = {2, 4, 6, 8 Στην περίπτωση που θέλουμε να δημιουργήσουμε έναν πίνακα χωρίς να αρχικοποιήσουμε τις τιμές του ακολουθούμε τη παρακάτω σύνταξη: Τύπος_Πίνακα[] Όνομα_Μεταβλητής = new Τύπος_Πίνακα[Μέγεθος_Πίνακα]; Στην κλάση SetofPoints δημιουργήσαμε τον πίνακα Point ως εξής: Point2D[] Points = new Point2D[maxN]; Ο πίνακας Points έχει μέγεθος maxn και η αναφορά σε κάθε κελί του πίνακα ξεκινάει από το 0 έως το maxn-1. Η προσπέλαση στο μήκος ενός πίνακα μπορεί να γίνει και με τη δήλωση: Points.length, άρα τα κελιά του πίνακα Points αριθμούνται από 0 έως Points.length -1. Επίσης, στη Java μπορούμε να ορίσουμε και πολυδιάστατους πίνακες με παρόμοιο τρόπο: double[][] array2d; int[][][] array3d; Πρέπει να σημειώσουμε ότι η προκαθορισμένη (default) τιμή των στοιχείων ενός πίνακα είναι null Η κλάση String Στον Πίνακα 15.1 αναφερθήκαμε στους βασικούς τύπους της Java, όπου είδαμε ότι δεν υπάρχει κάποιος τύπος για τα αλφαριθμητικά. Η Java χειρίζεται τα αλφαριθμητικά μέσω της κλάσης String. Ένα αλφαριθμητικό είναι ένα σύνολο από χαρακτήρες γραμμένο μέσα σε εισαγωγικά, για παράδειγμα Hello Java. Έτσι, ένα αλφαριθμητικό στη Java είναι ένα αντικείμενο τύπου String. Η δήλωση και η ανάθεση τιμής μιας μεταβλητής τύπου String είναι η εξής: String var = Data Structures ; Στην περίπτωση των αλφαριθμητικών μπορούμε να χρησιμοποιήσουμε τον τελεστή της πρόσθεσης για τη συνένωση δύο αλφαριθμητικών. Για παράδειγμα η δήλωση: String var2 = var1 +! ; 290

12 θα επιστρέψει το εξής αποτέλεσμα: Data Structures! 15.2 Κληρονομικότητα και Πολυμορφισμός Στην ενότητα αυτή θα αναφερθούμε σε μια από τις κύριες τεχνικές του αντικειμενοστραφούς προγραμματισμού, που είναι η κληρονομικότητα και ο πολυμορφισμός. Κληρονομικότητα είναι η διαδικασία με την οποία μια νέα κλάση που ονομάζεται παράγωγη κλάση δημιουργείται από μια άλλη κλάση που ονομάζεται βασική κλάση. Μια παράγωγη κλάση έχει αυτομάτως όλα τα πεδία και τις μεθόδους που έχει και η βασική κλάση, ενώ μπορεί να έχει επιπρόσθετες μεθόδους ή/και επιπρόσθετα πεδία. Θα μπορούσαμε να επεκτείνουμε το παράδειγμά μας, ορίζοντας μια νέα κλάση παράγωγη της Point2D, η οποία θα κρατάει τρία σημεία στο χώρο και η οποία θα κληρονομεί τα πεδία και τις μεθόδους της κλάσης; Point2D. Ονομάζουμε την κλάση αυτή Point3D. Προκειμένου να αναφερθούμε στα πεδία ή τις μεθόδους της βασικής κλάσης, χρησιμοποιούμε τη λέξη κλειδί super. Εάν θέλουμε να χρησιμοποιήσουμε τη μέθοδο tostring() της παράγωγης κλάσης, τότε μπορούμε να χρησιμοποιήσουμε το this.μια μέθοδος που ορίζεται στη βασική κλάση μπορούμε να την ορίσουμε ξανά στην παράγωγη κλάση με διαφορετικό τρόπο, όπως, για παράδειγμα, δείχνουμε στον κώδικα που ακολουθεί με τη μέθοδο tostring(). Αυτό λέγεται υπέρβαση της μεθόδου (method overriding). class Point3D extends Point2D { int z; public Point3D(int x, int y,int z) { super(x,y); this.z = z; public String tostring(){ return "x:"+super.tostring()+" z:"+this.z; Ο Πολυμορφισμός αναφέρεται στη δυνατότητα που μας δίνεται να συνδέουμε πολλές έννοιες στο όνομα μιας μεθόδου. Ένα παράδειγμα πολυμορφισμού είναι και η υπερφόρτωση, που αναφέρθηκε στην Ενότητα Διασυνδέσεις και Αφηρημένες Κλάσεις Μια διασύνδεση (interface) στη Java προσδιορίζει ένα σύνολο μεθόδων που πρέπει να έχει οποιαδήποτε κλάση υλοποιεί τη διασύνδεση. Μια διασύνδεση δεν είναι κλάση, είναι μια ιδιότητα μιας κλάσης που περιγράφει ποιες μεθόδους πρέπει να έχει αυτή η κλάση. Μια διασύνδεση περιέχει τις επικεφαλίδες των μεθόδων που πρέπει να ορίζονται στην κλάση που υλοποιεί τη διασύνδεση. Μια κλάση, για να υλοποιεί μια διασύνδεση, πρέπει να 291

13 συμπεριλαμβάνει τη φράση implements Όνομα_Διασύνδεσης στην αρχή του ορισμού της και να υλοποιεί όλες τις μεθόδους των οποίων οι επικεφαλίδες περιέχονται στους ορισμούς της διασύνδεσης. Μια διασύνδεση ορίζεται χρησιμοποιώντας τη δεσμευμένη λέξη interface και το όνομα της διασύνδεσης. Το παράδειγμά μας θα μπορούσε να τροποποιηθεί προσθέτοντας τη διασύνδεση Points και τροποποιώντας κατάλληλα την κλάση Point2D, η οποία υλοποιεί τη διασύνδεση, όπως φαίνεται παρακάτω: interface Points { public double distto(); class Point2D implements Points{ Μια αφηρημένη κλάση είναι μια κλάση με μεθόδους που δεν έχουν πλήρεις ορισμούς. Με τη χρήση ενός δημιουργού αφηρημένης κλάσης δεν μπορούν να δημιουργηθούν αντικείμενα. Μια αφηρημένη κλάση, όμως, μπορεί να χρησιμοποιηθεί ως βασική κλάση για τον ορισμό των παράγωγων κλάσεων. Για να ορίσουμε μια κλάση ως αφηρημένη, χρησιμοποιούμε τη δεσμευμένη λέξη abstract στον ορισμό της. Επίσης, η αφηρημένη κλάση θα πρέπει να έχει τουλάχιστον μία αφηρημένη μέθοδο. Μια αφηρημένη μέθοδος έχει τύπο επιστρεφόμενης τιμής, όνομα και λίστα παραμέτρων, αλλά δεν έχει σώμα. Σύμφωνα με τους κανόνες σύνταξης της Java στη δήλωση μιας αφηρημένης μεθόδου βάζουμε τη δεσμευμένη λέξη abstract αριστερά του τύπου επιστρεφόμενης τιμής Γενικοί Τύποι Οι κλάσεις και οι μέθοδοι μπορούν να περιέχουν έναν τύπο δεδομένων ο οποίος ορίζεται παραμετρικά. Ο παραμετρικά οριζόμενος τύπος μπορεί να είναι οποιοσδήποτε τύπος αναφοράς, άρα και οποιοσδήποτε τύπος κλάσης. Στο Παράδειγμα 2, παρουσιάζεται ένας πολύ απλός ορισμός κλάσης, που περιέχει έναν παραμετρικά οριζόμενο τύπο Τ. Παράδειγμα 2. Χρήση γενικευμένης κλάσης. public class Example<T> { private T input; public void setinput(t input) {this.input = input public T getinput() { return input 292

14 Το κώδικαν του Παραδείγματος 2, τον αποθηκεύουμε σε ένα αρχείο με το όνομα Example.java. Σε ένα άλλο αρχείο που είναι η μέθοδος main γράφουμε τον παρακάτω κώδικα, προκειμένου να χρησιμοποιήσουμε την κλάση Example με το γενικευμένο τύπο. Example<String> p1 = new Example<String>(); P1.setInput( Hello ); System.out.println(p1.getInput()); Example<int> p2 = new Example<int>(); P1.setInput(1982); System.out.println(p.getInput()); Έτσι, ο παραμετρικά οριζόμενος τύπος είναι String στην περίπτωση του αντικειμένου p1, ενώ σε αυτή του αντικειμένου p2 είναι τύπου int. Σε μία κλάση μπορεί να δηλώσουμε οσουσδήποτε παραμετρικούς τύπους. Το όνομα της παραμέτρου που παριστά τον τύπο μπορεί να είναι οποιοδήποτε, αρκεί να μην είναι λέξη κλειδί, και κατά σύμβαση το πρώτο γράμμα γράφεται πάντα κεφαλαίο. Ο παραμετρικά οριζόμενος τύπος μπορεί να χρησιμοποιείται, όπως οποιοσδήποτε άλλος τύπος, στον ορισμό μιας κλάσης Ασκήσεις Γράψτε μια σύντομη συνάρτηση σε Java, την ismultiple, που δέχεται ως παράμετρο δύο αριθμούς n και m τύπου double και επιστρέφει true, αν και μόνο αν τοn είναι πολλαπλάσιο του m, δηλαδή n = mi για κάποιο i Να ορίσετε μια κλάση με όνομα Payment, που θα αναπαριστά μια πληρωμή. Η κλάση αυτή θα πρέπει να περιέχει μια μεταβλητή τύπου double, στην οποία θα αποθηκεύεται το ποσό μιας πληρωμής και κατάλληλες μεθόδους προσπέλασης και μεταλλαγής (get() και set()). Επίσης, να δημιουργήσετε μια μέθοδο με όνομα paymentdetails, η οποία θα πρέπει να τυπώνει στην οθόνη μια φράση που θα περιγράφει το ποσό της πληρωμής. Έπειτα να ορίσετε μια παράγωγη κλάση της Payment, με όνομα CashPayment, που θα αναπαριστά μια πληρωμή σε μετρητά. Η κλάση αυτή θα πρέπει να ορίζει ξανά τη μέθοδο paymentdetails, υποδεικνύοντας πως η πληρωμή είναι σε μετρητά. Να συμπεριλάβετε τον κατάλληλο κατασκευαστή ή κατασκευαστές. Να ορίσετε μια παράγωγη κλάση της κλάσης Payment, με όνομα CreditCardPayment, που θα αναπαριστά μια πληρωμή με πιστωτική κάρτα. Η κλάση αυτή θα πρέπει να περιέχει ως μέλη της μεταβλητές για το όνομα, την ημερομηνία λήξης και τον αριθμό της πιστωτικής κάρτας. Να συμπεριλάβετε τον κατάλληλο κατασκευαστή. Τέλος, να ορίσετε ξανά τη μέθοδο paymentdetails ώστε στην τυπωμένη αναφορά να συμπεριλαμβάνονται όλες οι πληροφορίες της πιστωτικής κάρτας. Να κατασκευάσετε μια μέθοδο main που να δημιουργεί δύο τουλάχιστον αντικείμενα της κλάσης CreditCardPayment με διαφορετικές τιμές και κλήσεις της μεθόδου paymentdetails για κάθε ένα από αυτά. 293

15 Βιβλιογραφία Goodrich, M. T., & Tamassia, R. (2006). Data Structures and Algorithms in Java, 4th edition. Wiley. Savitch, W. (2008). Απόλυτη Java. Ίων. Sedgewick, R., & Wayne, K. (2011). Algorithms, 4th edition. Addison-Wesley. 294

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

Διαβάστε περισσότερα

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

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

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

Διαβάστε περισσότερα

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

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

Διαβάστε περισσότερα

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,

Διαβάστε περισσότερα

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors). Κατασκευαστές Μέθοδοι Κατασκευής (Constructors). Οι κατασκευαστές (constructors) είναι μέθοδοι που εκτελούνται όταν κατασκευάζεται ένα αντικείμενο. Μια τάξη μπορεί να έχει αρκετούς κατασκευαστές, οι οποίοι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δομές ελέγχου ροής προγράμματος Δομές ελέγχου ροής προγράμματος Υπάρχουν δύο είδη δομών ελέγχου ροής (control flow): Οι δομές επιλογής και Οι δομές επανάληψης Δομές ελέγχου ροής προγράμματος Είδος δομής Δομές επιλογής Δομή ελέγχου ροής

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

Διαβάστε περισσότερα

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

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

Δεδομένα, τελεστές, είσοδος/έξοδος 2 Δεδομένα, τελεστές, είσοδος/έξοδος Τι θα δούμε σε αυτό το μάθημα 1. βασικοί τύποι δεδομένων 2. ακέραιοι 3. κινητής υποδιαστολής 4. ο τύπος decimal 5. χαρακτήρες 6. bool 7. string 8. χρήση μεταβλητών

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις Στατικές μέθοδοι Τι σημαίνει το keyword static στον ορισμό της main μεθόδου? Τι είναι μια στατική μέθοδος?

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

Τύποι δεδομένων, τελεστές, μεταβλητές

Τύποι δεδομένων, τελεστές, μεταβλητές Τύποι δεδομένων, τελεστές, μεταβλητές Βασικά στοιχεία της γλώσσας Η Java χαρακτηρίζεται από ένα αρκετά καλά οργανωμένο σύνολο εντολών κι ένα μέρος της επιτυχίας της οφείλεται στα διάφορα APIs (βιβλιοθήκες)

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Σύγκριση JAVA-C ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΣΥΓΚΡΙΣΗ JAVA - C ΤΥΠΟΙ

Διαβάστε περισσότερα

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Κλάσεις Τροποποιητές, ιασυνδέσεις, Πακέτα Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Υπάρχουν 4τροποποιητές: default, public, private, protected. Default: εν προηγείται τροποποιητής του ονόµατος

Διαβάστε περισσότερα

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

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

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση

Διαβάστε περισσότερα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους Σύνοψη των βασικών λειτουργιών

Διαβάστε περισσότερα

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

Διαβάστε περισσότερα

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 16/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί

Διαβάστε περισσότερα

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

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο

Διαβάστε περισσότερα

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

Διαβάστε περισσότερα

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

Διαβάστε περισσότερα

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

3. Εκφράσεις και έλεγχος ροής 3. Εκφράσεις και έλεγχος ροής Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να διακρίνετε ανάμεσα σε μεταβλητές μέλη και αυτόματες μεταβλητές Να περιγράφετε την αρχικοποίηση των μεταβλητών μελών Να αναγνωρίζετε

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

Διαβάστε περισσότερα

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων 1 Είσοδος/Έξοδος Είσοδος/Έξοδος ανάλογα με τον τύπο του προγράμματος Πρόγραμμα

Διαβάστε περισσότερα

Συναρτήσεις και διαδικασίες

Συναρτήσεις και διαδικασίες Συναρτήσεις και διαδικασίες Χρήση συναρτήσεων βιβλιοθήκης Εντολή κλήσης της συνάρτησης printf: printf( Hello, world\n ); Μια συνάρτηση είναι ένα σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ

Διαβάστε περισσότερα

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις

Διαβάστε περισσότερα

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

Διαβάστε περισσότερα

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Οιµέθοδοικαθορίζουντηνσυµπεριφοράενόςαντικειµένου. Τα βασικά µέρη από τα οποία αποτελείται µία µέθοδος είναι τα εξής: Το όνοµα της µεθόδου

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Tοπικές μεταβλητές To αντικείμενο this Accessor, Mutator μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Tοπικές μεταβλητές To αντικείμενο this Accessor, Mutator μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Tοπικές μεταβλητές To αντικείμενο this Accessor, Mutator μέθοδοι Ορισμός κλάσης και αντικειμένων Μία κλάση Κ ορίζεται από

Διαβάστε περισσότερα

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

Διαβάστε περισσότερα

Κλάσεις και αντικείμενα #include <iostream.h<

Κλάσεις και αντικείμενα #include <iostream.h< Κλάσεις και αντικείμενα #include class Person private: char name[30]; int age; public: void readdata() cout > name; cout > age; void

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.

Διαβάστε περισσότερα

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

Διαβάστε περισσότερα

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε

Διαβάστε περισσότερα

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 2 Είσοδος από το πληκτρολόγιο: 1) Προσθήκη απαραίτητης βιβλιοθήκης

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 2: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του

Διαβάστε περισσότερα

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών

Διαβάστε περισσότερα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες. ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες. Θέμα 1. α) Δημιουργήστε μια κλάση αντικειμένων Tetragono η οποία

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

Διαβάστε περισσότερα

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

Διαβάστε περισσότερα

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08 Constructors (Κατασκευαστές) Ειδικός τύπος μεθόδων που δημιουργούν αντικείμενα μιας κλάσης και: Εκτελούνται κατά την αρχικοποίηση των αντικειμένων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

Διαβάστε περισσότερα

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!! Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο Τελική Εξέταση

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Κων. Κόκκινος ΠΙΝΑΚΕΣ (ARRAYS) Είναι χώροι της μνήμης για προσωρινή αποθήκευση δεδομένων του ίδιου τύπου. Οι πίνακες είναι δομές δεδομένων που τις

Διαβάστε περισσότερα

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

Διαβάστε περισσότερα