Βασικά στοιχεία προγραµµατισµού στη JAVA. Επαναχρησιµοποίηση κώδικα Ονοµατολογία Χρήσιµες Βιβλιοθήκες (I/O) Προγραµµατιστικές συµβάσεις

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

Download "Βασικά στοιχεία προγραµµατισµού στη JAVA. Επαναχρησιµοποίηση κώδικα Ονοµατολογία Χρήσιµες Βιβλιοθήκες (I/O) Προγραµµατιστικές συµβάσεις"

Transcript

1 Βασικά στοιχεία προγραµµατισµού στη JAVA Επαναχρησιµοποίηση κώδικα Ονοµατολογία Χρήσιµες Βιβλιοθήκες (I/O) Προγραµµατιστικές συµβάσεις

2 Επαναχρησιµοποίηση Κώδικα Application Programming Interfaces (APIs) Βιβλιοθήκες

3 Επαναχρησιμοποίηση κλάσεων Μ. Δικαιάκος Όταν θέλουμε να επαναχρησιμοποιήσουμε υπάρχουσες κλάσεις, ο μεταγλωττιστής θα πρέπει να μπορεί να τις αναζητήσει και να τις βρεί. Όταν ο πηγαίος κώδικας της επαναχρησιμοποιούμενης κλάσης βρίσκεται στο αρχείο μας, το πρόβλημα είναι απλό (no forward referencing problem στην Java). Επίσης, μπορούμε εύκολα να επαναχρησιμοποιήσουμε κλάσεις που βρίσκονται τοποθετημένες στον ίδιο κατάλογο με τον κώδικά μας Για την «ενσωμάτωση» εξωτερικών κλάσεων χρησιμοποιούμε την εντολή import, με την οποία λέμε στον μεταφραστή να ενσωματώσει μια κλάση ή ένα «πακέτο» (package), δηλ. μια βιβλιοθήκη κλάσεων. Π.χ.: import java.util.arraylist; import java.util.*; 3

4 4 Προγραμματιστική Διαπροσωπεία Εφαρμογών

5 4 Προγραμματιστική Διαπροσωπεία Εφαρμογών H Προγραμματιστική Διαπροσωπεία Εφαρμογών της JAVA (JAVA API - Application Programming Interface) αποτελείται από μια μεγάλη συλλογή έτοιμων δομοστοιχείων λογισμικού, τα οποία υλοποιούν διάφορες χρήσιμες λειτουργικότητες.

6 4 Προγραμματιστική Διαπροσωπεία Εφαρμογών H Προγραμματιστική Διαπροσωπεία Εφαρμογών της JAVA (JAVA API - Application Programming Interface) αποτελείται από μια μεγάλη συλλογή έτοιμων δομοστοιχείων λογισμικού, τα οποία υλοποιούν διάφορες χρήσιμες λειτουργικότητες. Το ΑΡΙ είναι οργανωμένο σε λογικές συλλογές (βιβλιοθήκες) κλάσεων και διαπροσωπειών, οι οποίες, στην ορολογία της JAVA, αποκαλούνται πακέτα (packages).

7 4 Προγραμματιστική Διαπροσωπεία Εφαρμογών H Προγραμματιστική Διαπροσωπεία Εφαρμογών της JAVA (JAVA API - Application Programming Interface) αποτελείται από μια μεγάλη συλλογή έτοιμων δομοστοιχείων λογισμικού, τα οποία υλοποιούν διάφορες χρήσιμες λειτουργικότητες. Το ΑΡΙ είναι οργανωμένο σε λογικές συλλογές (βιβλιοθήκες) κλάσεων και διαπροσωπειών, οι οποίες, στην ορολογία της JAVA, αποκαλούνται πακέτα (packages). Πληροφορίες για τον ορισμό των κλάσεων που υπάρχουν στις βιβλιοθήκες της Java, μπορούν να βρεθούν στα εγχειρίδια χρήσης της γλώσσας, που υπάρχουν σε μορφή HTML:

8 4 Προγραμματιστική Διαπροσωπεία Εφαρμογών H Προγραμματιστική Διαπροσωπεία Εφαρμογών της JAVA (JAVA API - Application Programming Interface) αποτελείται από μια μεγάλη συλλογή έτοιμων δομοστοιχείων λογισμικού, τα οποία υλοποιούν διάφορες χρήσιμες λειτουργικότητες. Το ΑΡΙ είναι οργανωμένο σε λογικές συλλογές (βιβλιοθήκες) κλάσεων και διαπροσωπειών, οι οποίες, στην ορολογία της JAVA, αποκαλούνται πακέτα (packages). Πληροφορίες για τον ορισμό των κλάσεων που υπάρχουν στις βιβλιοθήκες της Java, μπορούν να βρεθούν στα εγχειρίδια χρήσης της γλώσσας, που υπάρχουν σε μορφή HTML: JDK6 Documentation

9 4 Προγραμματιστική Διαπροσωπεία Εφαρμογών H Προγραμματιστική Διαπροσωπεία Εφαρμογών της JAVA (JAVA API - Application Programming Interface) αποτελείται από μια μεγάλη συλλογή έτοιμων δομοστοιχείων λογισμικού, τα οποία υλοποιούν διάφορες χρήσιμες λειτουργικότητες. Το ΑΡΙ είναι οργανωμένο σε λογικές συλλογές (βιβλιοθήκες) κλάσεων και διαπροσωπειών, οι οποίες, στην ορολογία της JAVA, αποκαλούνται πακέτα (packages). Πληροφορίες για τον ορισμό των κλάσεων που υπάρχουν στις βιβλιοθήκες της Java, μπορούν να βρεθούν στα εγχειρίδια χρήσης της γλώσσας, που υπάρχουν σε μορφή HTML: JDK6 Documentation

10 5 To API της κλάσης Charge public class Charge double x0, y0, q0; double potentialat(double x, double y) δυναμικό στη θέση x,y λόγω του φορτίου String tostring() μια συμβολοσειρά που αναπαριστά το φορτίο

11 6 Το API της μαθηματικής βιβλιοθήκης

12 7 Ένα πρόγραμμα σε Java // Property.java import java.util.*; // java.util.date public class Property { public static void main(string[] args) { System.out.println(new Date()); Properties p = System.getProperties(); p.list(system.out); System.out.println( -- Memory usage: ); Runtime rt = Runtime.getRuntime(); System.out.println( Total Memory = + rt.totalmemory() + Free Memory = + rt.freememory()); } }

13 8 Πληροφορίες για κλάσεις

14 8 Πληροφορίες για κλάσεις getproperies(): στατική μέθοδος της κλάσης System. Επιστρέφει χειριστήριο για ένα αντικείμενο της κλάσης Properties.

15 Πληροφορίες για κλάσεις getproperies(): στατική μέθοδος της κλάσης System. Επιστρέφει χειριστήριο για ένα αντικείμενο της κλάσης Properties. Η κλάση Properties διαθέτει μια μέθοδο list(), η οποία στέλνει τα περιεχόμενα τού αντικειμένου σε ένα αντικείμενο System.out Μ. Δικαιάκος 8

16 Πληροφορίες για κλάσεις getproperies(): στατική μέθοδος της κλάσης System. Επιστρέφει χειριστήριο για ένα αντικείμενο της κλάσης Properties. Η κλάση Properties διαθέτει μια μέθοδο list(), η οποία στέλνει τα περιεχόμενα τού αντικειμένου σε ένα αντικείμενο System.out Υπερφόρτωση τελεστή + Μ. Δικαιάκος 8

17 Πληροφορίες για κλάσεις getproperies(): στατική μέθοδος της κλάσης System. Επιστρέφει χειριστήριο για ένα αντικείμενο της κλάσης Properties. Η κλάση Properties διαθέτει μια μέθοδο list(), η οποία στέλνει τα περιεχόμενα τού αντικειμένου σε ένα αντικείμενο System.out Υπερφόρτωση τελεστή + Αυτόματη μετατροπή τύπου Μ. Δικαιάκος 8

18 9

19 10

20 11

21 Διαχείριση Ονοµάτων Πώς αποφεύγουµε συγκρούσεις ανάµεσα σε δύο ονόµατα (µεθόδων, µεταβλητών, πεδίων δεδοµένων...);

22 13 Ορατότητα Ονομάτων (name visibility)

23 13 Ορατότητα Ονομάτων (name visibility) Αποφυγή συγκρούσεων ονομάτων:

24 13 Ορατότητα Ονομάτων (name visibility) Αποφυγή συγκρούσεων ονομάτων: Μέθοδοι και πεδία δεδομένων είναι πάντοτε φωλιασμένα σε κλάσεις και καλούνται μέσω του ονόματος αντικειμένων.

25 13 Ορατότητα Ονομάτων (name visibility) Αποφυγή συγκρούσεων ονομάτων: Μέθοδοι και πεδία δεδομένων είναι πάντοτε φωλιασμένα σε κλάσεις και καλούνται μέσω του ονόματος αντικειμένων. Επομένως, δεν υπάρχει περίπτωση σύγκρουσης με ονόματα μεθόδων ή πεδίων δεδομένων άλλων κλάσεων.

26 13 Ορατότητα Ονομάτων (name visibility) Αποφυγή συγκρούσεων ονομάτων: Μέθοδοι και πεδία δεδομένων είναι πάντοτε φωλιασμένα σε κλάσεις και καλούνται μέσω του ονόματος αντικειμένων. Επομένως, δεν υπάρχει περίπτωση σύγκρουσης με ονόματα μεθόδων ή πεδίων δεδομένων άλλων κλάσεων. Τι συμβαίνει με τα ονόματα των κλάσεων;

27 13 Ορατότητα Ονομάτων (name visibility) Αποφυγή συγκρούσεων ονομάτων: Μέθοδοι και πεδία δεδομένων είναι πάντοτε φωλιασμένα σε κλάσεις και καλούνται μέσω του ονόματος αντικειμένων. Επομένως, δεν υπάρχει περίπτωση σύγκρουσης με ονόματα μεθόδων ή πεδίων δεδομένων άλλων κλάσεων. Τι συμβαίνει με τα ονόματα των κλάσεων; Η JAVA εισάγει μια σύμβαση σύμφωνα με την οποία κάθε αρχείο Java αντιστοιχεί αυτόματα σε έναν δικό του χώρο ονομάτων (name space) και κάθε κλάση μέσα στο αρχείο δέχεται αυτόματα μια μοναδική ταυτότητα (identifier).

28 13 Ορατότητα Ονομάτων (name visibility) Αποφυγή συγκρούσεων ονομάτων: Μέθοδοι και πεδία δεδομένων είναι πάντοτε φωλιασμένα σε κλάσεις και καλούνται μέσω του ονόματος αντικειμένων. Επομένως, δεν υπάρχει περίπτωση σύγκρουσης με ονόματα μεθόδων ή πεδίων δεδομένων άλλων κλάσεων. Τι συμβαίνει με τα ονόματα των κλάσεων; Η JAVA εισάγει μια σύμβαση σύμφωνα με την οποία κάθε αρχείο Java αντιστοιχεί αυτόματα σε έναν δικό του χώρο ονομάτων (name space) και κάθε κλάση μέσα στο αρχείο δέχεται αυτόματα μια μοναδική ταυτότητα (identifier). Για την αποφυγή συγκρούσεων ανάμεσα σε ομώνυμες κλάσεις διαφορετικών προγραμματιστών, κάθε προγραμματιστής μπορεί να επιδιώκει την χρήση μοναδικών ονομάτων. Π.χ.: cy.ac.ucy.cs.mdd.utility

29 14 Κανόνες προτεραιότητας ονομάτων

30 14 Κανόνες προτεραιότητας ονομάτων import java.util.*;

31 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test {

32 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) {

33 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random();

34 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}}

35 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random;

36 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο;

37 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*;

38 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Random {

39 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Random { int nextint() { return 0; }

40 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Random { int nextint() { return 0; } }

41 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Random { int nextint() { return 0; } } public class Test {

42 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Random { int nextint() { return 0; } } public class Test { public static void main(string[] args) {

43 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Random { int nextint() { return 0; } } public class Test { public static void main(string[] args) { Random rand = new Random();

44 14 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Random { int nextint() { return 0; } } public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;

45 Κανόνες προτεραιότητας ονομάτων import java.util.*; public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100;}} Πού ορίζεται η κλάση Random; Τι συμβαίνει στο ακόλουθο; import java.util.*; public class Random { int nextint() { return 0; } } public class Test { public static void main(string[] args) { Random rand = new Random(); int j = rand.nextint() % 100; }} Μ. Δικαιάκος 14

46 15 Ονοματολογία Κλάσεων και Μεθόδων import java.util.*; class Random { int nextint() { return 0; } } public class Test { public static void main(string[] args) { java.util.random rand = new java.util.random(); int j = rand.nextint() % 100; } }

47 Βιβλιοθήκες Εισόδου/Εξόδου

48 17

49 18

50 19 Λίγα λόγια για την StdDraw line(x0, y0, x1, y1) τραβάει μια γραμμή από το (x0,y0) στο (x1,y1) προκαθορισμένη κλίμακα: μοναδιαίο τετράγωνο: συντεταγμένες σημείων μεταξύ (0,0) και (1,1) προκαθορισμένη συμπεριφορά: η απεικόνιση των σχεδίων σας γίνεται σε παράθυρο με μαύρο χρώμα σε άσπρο παρασκήνιο point(x,y) απεικονίζει ένα σημείο στις συντεταγμένες (x,y)

51 20 Παράδειγμα αʼ Σχεδιάστε ένα ισόπλευρο τρίγωνο με μήκος ακμής 1 και με μια τελεία στο εσωτερικό του: (0.5, sqrt(3)/2) (0,0) (0,1)

52 21 Ο κώδικας } public class Triangle { public static void main(string[] args) { double t = Math.sqrt(3.0) / 2.0; StdDraw.line(0.0, 0.0, 1.0, 0.0); StdDraw.line(1.0, 0.0, 0.5, t); StdDraw.line(0.5, t, 0.0, 0.0); StdDraw.point(0.5, t/3.0); }

53 Παράδειγμα βʼ Διάβασε ένα σύνολο από συντεταγμένες σημείων και απεικόνισέ τα στο επίπεδο public class PlotFilter { public static void main(string[] args) { // read in bounding box and rescale double x0 = StdIn.readDouble(); double y0 = StdIn.readDouble(); double x1 = StdIn.readDouble(); double y1 = StdIn.readDouble(); StdDraw.setXscale(x0, x1); StdDraw.setYscale(y0, y1); } Μ. Δικαιάκος // plot points, one at a time while (!StdIn.isEmpty()) { double x = StdIn.readDouble(); double y = StdIn.readDouble(); StdDraw.point(x, y); } 22

54 Παράδειγμα βʼ Διάβασε ένα σύνολο από συντεταγμένες σημείων και απεικόνισέ τα στο επίπεδο public class PlotFilter { public static void main(string[] args) { // read in bounding box and rescale double x0 = StdIn.readDouble(); double y0 = StdIn.readDouble(); double x1 = StdIn.readDouble(); double y1 = StdIn.readDouble(); StdDraw.setXscale(x0, x1); StdDraw.setYscale(y0, y1); } Μ. Δικαιάκος // plot points, one at a time while (!StdIn.isEmpty()) { double x = StdIn.readDouble(); double y = StdIn.readDouble(); StdDraw.point(x, y); } 22

55 23 Παράδειγμα γʼ

56 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

57 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

58 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

59 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

60 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

61 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

62 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

63 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

64 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

65 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

66 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

67 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

68 23 Παράδειγμα γʼ Χρησιμοποιείστε την κλάση StdDraw για να κάνετε τη γραφική παράσταση της συνάρτησης: y = sin(4x) + sin(20x) στο διάστημα (0, π) Ωστόσο: στο διάστημα αυτό υπάρχουν άπειρα σημεία... Λύση: Δειγματοληψία: υπολογίζουμε τη συνάρτηση για πεπερασμένο αριθμό σημείων Γραμμική προσέγγιση: ενώνουμε τα σημεία της γραφικής παράστασης με ευθύγραμμα τμήματα

69 24 public class FunctionGraph { public static void main(string[] args) { } } // number of line segments to plot int N = Integer.parseInt(args[0]); // the function y = sin(4x) + sin(20x), sampled at N points // between x = 0 and x = pi double[] a = new double[n+1]; for (int i = 0; i <= N; i++) { a[i] = Math.sin(4*Math.PI*i/N) + Math.sin(20*Math.PI*i/N); } // rescale the coordinate system StdDraw.setXscale(0, N); StdDraw.setYscale(-2.0, +2.0); // plot the approximation to the function for (int i = 0; i < N; i++) { StdDraw.line(i, a[i], i+1, a[i+1]); }

70 25 Άσκηση για το σπίτι Χρησιμοποιείστε την StdDraw για να απεικονίσετε: ένα ισόπλευρο τρίγωνο εγγεγραμμένο σε κύκλο τον κύκλο το κέντρο του κύκλου

71 26 Έλεγχος στη StdDraw setxscale(x0, x1), setyscale(y0,y1) αλλάζουν τις κλίμακες των αξόνων συντεταγμένων από (0,1) σε (x0,x1) και (y0,y1), αντίστοιχα το σημείο (x0,y0) αντιστοιχεί στην κάτω αριστερά γωνία του καμβά μας. setpenradius(r) αλλάζει το μέγεθος της ακίδας του νοητού μολυβιού με το οποίο σχεδιάζονται οι γραμμές, σε r

72 27 Σχήματα στη StdDraw Η StdDraw υποστηρίζει την απεικόνιση σχημάτων (κύκλων, ορθωγώνιων, πολυγώνων) Ένα σχήμα ορίζεται από το περίγραμμά του Μέθοδοι των οποίων το όνομα ξεκινάει με filled, το εσωτερικό του σχήματος είναι διαφορετικό από το παρασκήνιο

73 28 Παράδειγμα σχημάτων στη StdDraw

74 29 StdDraw: χρώμα και κίνηση

75 Παράδειγμα δʼ: ελαστική σφαίρα Μ. Δικαιάκος Απεικονίστε μια ελαστική σφαίρα, η οποία κινείται με ταχύτητα (vx,vy), ξεκινώντας από μια αρχική θέση (rx, ry) Αλγόριθμος: Υπολόγισε τη νέα θέση της σφαίρας Καθάρισε τον καμβά Απεικόνισε τη σφαίρα στη νέα της θέση Περίμενε για λίγο διάστημα Επανάλαβε για έναν αριθμό βημάτων ώστε να δοθεί η αίσθηση της κίνησης της σφαίρας Υπολογισμός νέας θέσης: x t+1 = xt + vx, όπου x0 = rx y t+1 = yt + vx, όπου y0 = ry Τι συμβαίνει όταν χτυπήσουμε τοίχο; 30

76 public class BouncingBall { public static void main(string[] args) { // set the scale of the coordinate system StdDraw.setXscale(-1.0, 1.0); StdDraw.setYscale(-1.0, 1.0); // initial values double rx = 0.480, ry = 0.860; // position double vx = 0.005, vy = 0.003; // velocity double radius = 0.05; // radius // main animation loop while (true) { // bounce off wall according to law of elastic collision if (Math.abs(rx + vx) > radius) vx = -vx; if (Math.abs(ry + vy) > radius) vy = -vy; // update position rx = rx + vx; ry = ry + vy; // clear the background StdDraw.setPenColor(StdDraw.GRAY); StdDraw.filledSquare(0, 0, 1.0); // draw ball on the screen StdDraw.setPenColor(StdDraw.BLACK); StdDraw.filledCircle(rx, ry, radius); // display and pause for 20 ms StdDraw.show(20); } } } 31

77 32 StdDraw: αλληλεπίδραση με χρήστη double mousex() επιστρέφει την x συντεταγμένη του μυός double mousey() επιστρέφει την y συντεταγμένη του ποντικιού boolean mousepressed() επιστρέφει τιμή αληθή αν πιέσουμε το ποντίκι

78 33 Χρήση βιβλιοθηκών Κατεβάστε τα αρχεία JAVA που υλοποιούν τις StdIn, StdOut και StdDraw από το Διαδίκτυο: Τοποθετείστε τα τρία αυτά αρχεία στον κατάλογο στον οποίο κρατάτε τα προγράμματα JAVA που δημιουργείτε. Εισάγετε τα αρχεία αυτά στο περιβάλλον του Eclipse. Χρησιμοποιείστε μέσα από το Eclipse την εντολή javadoc για να δημιουργηθούν τα εγχειρίδια χρήσης των κλάσεων StdIn, StdOut, StdDraw Είστε έτοιμοι!

79 Προγραµµατιστικές Συµβάσεις τής SUN για την JAVA

80 35 Λόγοι Υιοθέτησης Συμβάσεων Οι προγραμματιστικές συμβάσεις είναι σημαντικές για μια σειρά λόγων: 80% του χρόνου κωδικοποίησης ενός προγράμματος αφορά στην συντήρησή του. Σπάνια κάποιο λογισμικό συντηρείται από τον αρχικό προγραμματιστή. Προγραμματιστικές συμβάσεις βελτιώνουν την αναγνωσιμότητα του λογισμικού και διευκολύνουν τους προγραμματιστές να κατανοούν τα προγράμματα πιό γρήγορα και καλύτερα. Αν ο πηγαίος κώδικά σας πρόκειται να κυκλοφορήσει σαν προϊόν,θα πρέπει να είναι οργανωμένος και γραμμένος καθαρά.

81 36 Οργάνωση Αρχείων JAVA Ένα αρχείο αποτελείται από τμήματα, τα οποία πρέπει να διαχωρίζονται με κενές γραμμές και προαιρετικά σχόλια περιγραφής του κάθε σχήματος. Αρχεία μεγαλύτερα από 2000 γραμμές είναι δυσανάγνωστα και πρέπει να αποφεύγονται. Κάθε αρχείο Java περιέχει μια μόνο δημόσια κλάση ή διαπροσωπεία. Όταν υπάρχουν ιδιωτικές κλάσεις ή διαπροσωπείες που σχετίζονται με την δημόσια κλάση, αυτές μπορούν να συμπεριληφθούν στο αρχείο της δημόσιας κλάσης, αλλά μετά τον ορισμό της. Τα αρχεία της Java έχουν την ακόλουθη δομή: Στην αρχή υπάρχουν σχόλια. Ακολουθούν εντολές πακέτων (package)και εισαγωγών (import). Δηλώσεις κλάσεων και διαπροσωπειών.

82 Αρχικά Σχόλια Αρχείων Java /* * Classname * * Version information * * Date * * Copyright notice */ Μ. Δικαιάκος 37

83 Εντολές Πακέτων και Εντολών Εισαγωγής Η πρώτη εντολή στα περισσότερα αρχεία Java αφορά στον ορισμό της βιβλιοθήκης (package) στην οποία ανήκουν οι κλάσεις του αρχείου. Ακολουθούν εντολές ενσωμάτωσης υπαρχουσών βιβλιοθηκών. Π.χ.: package java.awt; import java.awt.peer.canvaspeer; Μ. Δικαιάκος 38

84 39 Δηλώσεις Κλάσεων και Διαπροσωπειών Σύμφωνα με την σύμβαση της Sun, η δήλωση μιας κλάσης περιλαμβάνει: 1. Σχόλιο για την αποδελτίωση (documentation) της κλάσης ή διαπροσωπείας 2. Δήλωση κλάσης ή διαπροσωπείας. 3. Αν χρειάζεται, σχόλιο σχετικά με την υλοποίηση της κλάσης ή της διαπροσωπείας. 4. Ορισμούς μεταβλητών κλάσης (στατικών), με πρώτες τις public, ακολουθούμενες από τις protected, τις μη καθοριζόμενης πρόσβασης και τις private. 5. Ορισμούς μεταβλητών στιγμιοτύπου (instance variables), με την ίδια σειρά όπως και οι στατικές. 6. Κατασκευαστές (constructors) 7. Μέθοδοι

85 40 Παράδειγμα αρχείου Java package java.blah; import java.blah.blahdy.blahblah; /** * Class description goes here. * Mar 1999 Firstname Lastname */ public class Blah extends SomeClass { /* A class implementation comment can go here. */

86 41 Παράδειγμα αρχείου Java (συνέχεια) /** classvar1 documentation comment */ public static int classvar1; /** * classvar2 documentation comment that happens to be * more than one line long */ private static Object classvar2; /** instancevar1 documentation comment */ public Object instancevar1; /** instancevar2 documentation comment */ protected int instancevar2; /** instancevar3 documentation comment */ private Object[] instancevar3; /** *...constructor Blah documentation comment... */ public Blah() { //...implementation goes here... }

87 Παράδειγμα αρχείου Java (συνέχεια) /** *...method dosomething documentation comment... */ public void dosomething() { //...implementation goes here... } /** *...method dosomethingelse documentation comment... someparam description */ public void dosomethingelse(object someparam) { //...implementation goes here... } } Μ. Δικαιάκος 42

88 Συμβάσεις Σχολίων: Γενικές Αρχές Δύο ειδών σχόλια: Υλοποίησης, που περιλαμβάνονται ανάμεσα σε /*...*/, ή έπονται του // Αποδελτίωσης (documentation ή "doc comments"), που περιλαμβάνονται ανάμεσα σε /**...*/. Τα σχόλια αποδελτίωσης, μπορούν να εξαχθούν αυτόματα σε εγχειρίδια HTML μορφότυπου, με χρήση του εργαλείου javadoc. Τα σχόλια υλοποίησης χρησιμεύουν για τον αποκλεισμό κώδικα σε σχόλιο, ή τον σχολιασμό υλοποίησης. Τα σχόλια αποδελτίωσης στοχεύουν στην καταγραφή των προδιαγραφών του κώδικα (code specification), ανεξάρτητα της υλοποίησης. Γενικά, τα σχόλια αποσκοπούν στην παράθεση επεξηγήσεων σχετικά με τον κώδικα για πράγματα που δεν είναι φανερά από τον κώδικα τον ίδιο. Πάρα πολλά επεξηγηματικά σχόλια υποδηλώνουν συνήθως κακή σχεδίαση του κώδικα. 43

89 44 Σχόλια Αποδελτίωσης (doc comments) Χρησιμεύουν στην αυτόματη αποδελτίωση σε εγχειρίδιο HTML από το εργαλείο javadoc. Περιλαμβάνονται μεταξύ χαρακτήρων /**...*/, με ένα σχόλιο για κάθε κλάση, διαπροσωπεία ή μέθοδο-μέλος κλάσης και πρέπει να εµφανίζονται ακριβώς πριν την δήλωση για την αποδελτίωση της οποίας εισάγονται: /** * The Example class provides... */ public class Example {... Ακολουθούν την στοίχιση της δήλωσης της οποίας προηγούνται. Σχόλια αποδελτίωσης δεν πρέπει να τοποθετούνται μέσα στο σώμα μιας μεθόδου.

90 Σχόλια Αποδελτίωσης (συνέχεια) Μπορούν να περιλαμβάνουν σημαντήρες οι οποίοι επιτρέπουν την παραπομπή σε άλλα τμήματα των εγχειριδίων HTML, τα οποία δημιουργούνται από το javadoc. Άλλοι χρησιμοποιούμενοι σημαντήρες είναι @param parameter-name Μ. Δικαιάκος 45

91 Μ. Δικαιάκος Συμβάσεις Ονοματολογίας Κλάσεις: Class names should be nouns, in mixed case with the first letter of each internal word capitalized. Try to keep simple and descriptive. Use whole words-avoid acronyms and abbreviations. Διαπροσωπείες: Interface names should be capitalized like class names. Μέθοδοι: Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized. Μεταβλητές: Except for variables, all instance, class, and class constants are in mixed case with a lowercase first letter. Internal words start with capital letters. Variable names should not start with underscore _ or dollar sign $ characters, even though both are allowed. Variable names should be short yet meaningful. The choice of a variable name should be mnemonic- that is, designed to indicate to the casual observer the intent of its use. One-character variable names should be avoided except for temporary "throwaway" variables. Common names for temporary variables are i, j, k, m, and n for integers; c, d, and e for characters. Σταθερές: The names of variables declared class constants and of ANSI constants should be all uppercase with words separated by underscores ("_"). (ANSI constants should be avoided, for ease of debugging.) 46

92 47

! Προσδιοριστές πρόσβασης και απόκρυψη πληροφορίας. ! Προγραμματιστικές Συμβάσεις. ! Σε περίπτωση που δεν χρησιμοποιείται προσδιοριστής

! Προσδιοριστές πρόσβασης και απόκρυψη πληροφορίας. ! Προγραμματιστικές Συμβάσεις. ! Σε περίπτωση που δεν χρησιμοποιείται προσδιοριστής Περίγραμμα! Προσδιοριστές πρόσβασης και απόκρυψη πληροφορίας! Προγραμματιστικές Συμβάσεις ΠΡΟΣΔΙΟΡΙΣΤΕΣ ΠΡΟΣΒΑΣΗΣ Access Specifiers 1 2 Προσδιοριστές Πρόσβασης! Βασική αρχή:! Μια κλάση ελέγχει την πρόσβαση

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια

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

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

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

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

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

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

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

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

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

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

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

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

8. Μέθοδοι (Methods) 8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και

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

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

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

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

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας ΕΡΓΑΣΙΑ 2 Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας Εισαγωγή Ημερομηνία Ανάρτησης: 16/02/2017 Ημερομηνία Παράδοσης: 06/03/2017,

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

ΕΠΛ 131 Φροντιστήριο 2

ΕΠΛ 131 Φροντιστήριο 2 ΕΠΛ 131 Φροντιστήριο 2 Όπως και για το έμβλημα του Πανεπιστημίου Κύπρου Από πού θα αντλήσουμε τα βασικά δομικά στοιχεία για τη λύση μας; Από τη Βιβλιοθήκη StdDraw, και επίσης θα κατασκευάσουμε και δικές

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

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

API: Applications Programming Interface

API: Applications Programming Interface ÒØ Ñ ÒÓ ØÖ ÔÖÓ» Ñ ÒØ Ñ ÒÓ ØÖ ÔÖÓ Ö ÑÑ Ø Ñ ½ Ö Ø Ò Ô Ö Ø ÒØ Ñ ÒÛÒ ÒÒÓ ôòøóù ÔÖ Ñ Ø Ó ÑÓÙ Ì ÔÓ ÓÑ ÒÛÒ Ì µ (i) ÒÓÐÓØ ÑôÒ (ii)ôö Ü º Ð ØÖ Ò Ò ÖÛÔÓ ØÖ ÔÐ Ò Ø Ó Ó Ù Ø Ñ Ø ººº ½ºÈÖÛØ ÓÒØ Ø ÔÓ int double char

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

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

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

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

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

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

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

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

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

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

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

ΕΠΛ Φροντιστήριο 3

ΕΠΛ Φροντιστήριο 3 ΕΠΛ 131 - Φροντιστήριο 3 Ας δημιουργήσουμε τη δική μας Βιβλιοθήκη μεθόδων για το σχηματισμό κύκλων διαφόρων μορφών CircleDefs public class CircleDefs void line_circle (double x, double y, double r, double

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

ΕΠΛ131 Είσοδος και Έξοδος (Input and Output)

ΕΠΛ131 Είσοδος και Έξοδος (Input and Output) Είσοδος και Έξοδος (Input and Output) Είσοδος και Έξοδος Μονάδες Εισόδου Πληκτρολόγιο Ποντίκι Σκληρός Διαδίκτυο Ψηφιακή κάμερα Μικρόφωνο δίσκος Μονάδες Εξόδου Οθόνη Ηχεία Σκληρός δίσκος Διαδίκτυο Εκτυπωτής

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

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

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

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

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

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

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

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

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

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

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

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

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

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

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

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

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

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

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

ΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ. Type Information. Μ. Δικαιάκος

ΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ. Type Information. Μ. Δικαιάκος ΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ Type Information 2 Δυναμική Πληροφορία Τύπου Runtime type information (RTTI): μας επιτρέπει να ανακαλύπτουμε και να χρησιμοποιούμε δυναμικά (at run time) πληροφορίες για τον τύπο

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

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

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

Σχεδιασµός, Εµφάνιση και Υφος

Σχεδιασµός, Εµφάνιση και Υφος ιοµήδης Σπινέλλης 1, Παναγιώτης Λουρίδας 2 1 Τµήµα ιοικητικής Επιστήµης και Τεχνολογίας Οικονοµικό Πανεπιστήµιο Αθηνών 2 Εθνικό ίκτυο Ερευνας και Τεχνολογίας Α.Ε. 19 εκεµβρίου 2006 Περιεχόµενα Αρχές και

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Συλλογή απορριμμάτων Συλλογή απορριμμάτων (Garbage

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

Γραφικά Περιβάλλοντα

Γραφικά Περιβάλλοντα Γραφικά Περιβάλλοντα (Standard Drawing) Διδάσκοντες: Νικόλας Νικολάου Εαρινό Εξάµηνο 2013/14 Τι θα δούµε σήµερα; Αναπαραγωγή γραφικών µε την χρήση της βιβλιοθήκης StdDraw 1 StdDraw: Βιβλιοθήκη για την

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13 Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA

ΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA Βασικά στοιχεία προγραµµατισµού στη JAVA Διαχείριση Μνήµης 3 Δέσμευση Μνήμης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες

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

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

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

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

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

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

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

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

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

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

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

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

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

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD (Object Oriented Programming) Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος Πακέτα (Packages) Φωλιασμένες

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

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

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

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

5 Βιβλιοθήκες & Τεκµηρίωση

5 Βιβλιοθήκες & Τεκµηρίωση Η Βιβλιοθήκη Κλάσεων της Java 5 Βιβλιοθήκες & Τεκµηρίωση Πώς χρησιµοποιούµε έτοιµες βιβλιοθήκες διαβάζοντας την τεκµηρίωσή τους Χιλιάδες κλάσεις στην τυποποιηµένη βιβλιοθήκη κλάσεων εκάδες χιλιάδες µέθοδοι

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

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

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12 Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Κων. Κόκκινος Αντικειμενοστραφής Προγραμματισμός Η ιδέα του αντικειμενοστραφούς προγραμματισμού Αυτόνομες οντότητες Στιγμιότυπα οντοτήτων Παράδειγμα

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

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

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

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

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008 Εκτέλεση μεθόδου του αντικειμένου μιας κλάσης: 1) Δημιουργία αντικειμένου (στιγμιότυπου) της κλάσης: = new ( ); 2) Κλήση μεθόδου της κλάσης (στην

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

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 23/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Υπερφόρτωση μεθόδων Υπερφόρτωση μεθόδων Πολλαπλές

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

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

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

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

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

Mεταβλητές (variables) και Σταθερές (constants) Mεταβλητές (variables) και Σταθερές (constants) Οι μεταβλητές είναι οι θέσεις μνήμης στις οποίες ένα πρόγραμμα τοποθετεί τα δεδομένα του κατά τη διάρκεια της λειτουργίας του. θα μάθουμε: πως δηλώνουμε

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Σχεδίαση Κλάσεων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

Δοκιμή και Αποσφαλμάτωση Testing and Debugging Δοκιμή και Αποσφαλμάτωση Testing and Debugging XVI-1 Ο μεταγλωττιστής εντοπίζει τα συντακτικά λάθη ενός προγράμματος. Δεν είναι όμως σε θέση να εντοπίσει λάθη στη λογική του προγράμματος. δεδομένα πρόγραμμα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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.

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

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

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

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

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

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

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 7: Ενθυλάκωση (encapsulation), Τροποποιητές(modifiers) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ενθυλάκωση -Τροποποιητές Πρόσβασης (Access Modifiers), public, protected, private,

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 15: Σχεδίαση Εφαρμογών Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

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

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

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

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

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

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

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

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

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

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

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

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

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