Βασικά στοιχεία προγραµµατισµού στη JAVA. Επαναχρησιµοποίηση κώδικα Ονοµατολογία Χρήσιµες Βιβλιοθήκες (I/O) Προγραµµατιστικές συµβάσεις
|
|
- Ἴκαρος Ταρσούλη
- 7 χρόνια πριν
- Προβολές:
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 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η
Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος
Διαβάστε περισσότεραΤο πρόγραμμα 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 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07
Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος
Διαβάστε περισσότεραΕΠΛ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
ΕΡΓΑΣΤΗΡΙΟ 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 Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει
Διαβάστε περισσότερα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 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2
Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαβάστε περισσότεραΕισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6
Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες
Διαβάστε περισσότεραΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους Σύνοψη των βασικών λειτουργιών
Διαβάστε περισσότερα8. Μέθοδοι (Methods)
8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες
Διαβάστε περισσότεραΣχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας
ΕΡΓΑΣΙΑ 2 Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας Εισαγωγή Ημερομηνία Ανάρτησης: 16/02/2017 Ημερομηνία Παράδοσης: 06/03/2017,
Διαβάστε περισσότεραΕΠΛ 131 Φροντιστήριο 2
ΕΠΛ 131 Φροντιστήριο 2 Όπως και για το έμβλημα του Πανεπιστημίου Κύπρου Από πού θα αντλήσουμε τα βασικά δομικά στοιχεία για τη λύση μας; Από τη Βιβλιοθήκη StdDraw, και επίσης θα κατασκευάσουμε και δικές
Διαβάστε περισσότερα2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Διαβάστε περισσότεραAPI: Applications Programming Interface
ÒØ Ñ ÒÓ ØÖ ÔÖÓ» Ñ ÒØ Ñ ÒÓ ØÖ ÔÖÓ Ö ÑÑ Ø Ñ ½ Ö Ø Ò Ô Ö Ø ÒØ Ñ ÒÛÒ ÒÒÓ ôòøóù ÔÖ Ñ Ø Ó ÑÓÙ Ì ÔÓ ÓÑ ÒÛÒ Ì µ (i) ÒÓÐÓØ ÑôÒ (ii)ôö Ü º Ð ØÖ Ò Ò ÖÛÔÓ ØÖ ÔÐ Ò Ø Ó Ó Ù Ø Ñ Ø ººº ½ºÈÖÛØ ÓÒØ Ø ÔÓ int double char
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι Μαθήματα από το lab Boolean μεταβλητές: Συνήθως τα ονόματα που δίνουμε στις boolean μεταβλητές περιγράφουν
Διαβάστε περισσότερα> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό
5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΕΠΛ Φροντιστήριο 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
Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της
Διαβάστε περισσότεραWrapper Classes, Abstract Classes and Interfaces
Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους
Διαβάστε περισσότεραΕΠΛ131 Είσοδος και Έξοδος (Input and Output)
Είσοδος και Έξοδος (Input and Output) Είσοδος και Έξοδος Μονάδες Εισόδου Πληκτρολόγιο Ποντίκι Σκληρός Διαδίκτυο Ψηφιακή κάμερα Μικρόφωνο δίσκος Μονάδες Εξόδου Οθόνη Ηχεία Σκληρός δίσκος Διαδίκτυο Εκτυπωτής
Διαβάστε περισσότεραΔιάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους
Διαβάστε περισσότεραΕργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση
Διαβάστε περισσότεραΕαρινό. Ύλη εργαστηρίου, Ασκήσεις Java
Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,
Διαβάστε περισσότερα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 2 Δυναμική Πληροφορία Τύπου Runtime type information (RTTI): μας επιτρέπει να ανακαλύπτουμε και να χρησιμοποιούμε δυναμικά (at run time) πληροφορίες για τον τύπο
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι 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 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται
Διαβάστε περισσότεραΣχεδιασµός, Εµφάνιση και Υφος
ιοµήδης Σπινέλλης 1, Παναγιώτης Λουρίδας 2 1 Τµήµα ιοικητικής Επιστήµης και Τεχνολογίας Οικονοµικό Πανεπιστήµιο Αθηνών 2 Εθνικό ίκτυο Ερευνας και Τεχνολογίας Α.Ε. 19 εκεµβρίου 2006 Περιεχόµενα Αρχές και
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας
Διαβάστε περισσότερα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
Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις
Διαβάστε περισσότεραΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 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 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο
Διαβάστε περισσότεραI (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.
I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)
Διαβάστε περισσότεραΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA
Βασικά στοιχεία προγραµµατισµού στη JAVA Διαχείριση Μνήµης 3 Δέσμευση Μνήμης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις Στατικές μέθοδοι Τι σημαίνει το keyword static στον ορισμό της main μεθόδου? Τι είναι μια στατική μέθοδος?
Διαβάστε περισσότεραΚλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΠακέτα (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 Βιβλιοθήκες & Τεκµηρίωση
Η Βιβλιοθήκη Κλάσεων της Java 5 Βιβλιοθήκες & Τεκµηρίωση Πώς χρησιµοποιούµε έτοιµες βιβλιοθήκες διαβάζοντας την τεκµηρίωσή τους Χιλιάδες κλάσεις στην τυποποιηµένη βιβλιοθήκη κλάσεων εκάδες χιλιάδες µέθοδοι
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12
Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Κων. Κόκκινος Αντικειμενοστραφής Προγραμματισμός Η ιδέα του αντικειμενοστραφούς προγραμματισμού Αυτόνομες οντότητες Στιγμιότυπα οντοτήτων Παράδειγμα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά και κοινή συμπεριφορά. Ένα καλούπι/πρότυπο
Διαβάστε περισσότεραΚλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών
Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008 Εκτέλεση μεθόδου του αντικειμένου μιας κλάσης: 1) Δημιουργία αντικειμένου (στιγμιότυπου) της κλάσης: = new ( ); 2) Κλήση μεθόδου της κλάσης (στην
Διαβάστε περισσότεραΠρογραμματισμός I (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 23/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Υπερφόρτωση μεθόδων Υπερφόρτωση μεθόδων Πολλαπλές
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε
Διαβάστε περισσότεραMεταβλητές (variables) και Σταθερές (constants)
Mεταβλητές (variables) και Σταθερές (constants) Οι μεταβλητές είναι οι θέσεις μνήμης στις οποίες ένα πρόγραμμα τοποθετεί τα δεδομένα του κατά τη διάρκεια της λειτουργίας του. θα μάθουμε: πως δηλώνουμε
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Σχεδίαση Κλάσεων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔοκιμή και Αποσφαλμάτωση Testing and Debugging
Δοκιμή και Αποσφαλμάτωση Testing and Debugging XVI-1 Ο μεταγλωττιστής εντοπίζει τα συντακτικά λάθη ενός προγράμματος. Δεν είναι όμως σε θέση να εντοπίσει λάθη στη λογική του προγράμματος. δεδομένα πρόγραμμα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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 Το 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 Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 3 Java Classes Java Objects
Διαβάστε περισσότερα1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι
1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της
Διαβάστε περισσότεραΜεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1
Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, tostring Αντικείμενα ως παράμετροι Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός
Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση
Διαβάστε περισσότερα