παράδοση έως: Παρασκευή 11 Ιανουαρίου 2019

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. Πρώτη Σειρά ασκήσεων Ημερομηνία Παράδοσης: 24 Απριλίου 2018, 12 μ.μ.

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Ψηφιακή Σχεδίαση ΙΙ Εισαγωγικό Μάθημα. Δρ. Μηνάς Δασυγένης

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

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

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

Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. Προγραμματιστικές Ασκήσεις, Εργαστήριο 1 Να ολοκληρωθούν μέχρι τη λήξη του εργαστηρίου

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

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

Δημιουργία μιας εφαρμογής Java με το NetBeans

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τµήµα ιοικητικής Επιστήµης και Τεχνολογίας ΥΛΟΠΟΙΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA.

Λειτουργικά Συστήματα

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

ΑΣΚΗΣΕΙΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (inheritance)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

Μάθημα 1 [3/11/2015].

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

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

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

turnin Lab2.hs

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

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

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

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

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

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ

Ενδεικτικές λύσεις και στατιστικά

ΟΔΗΓΟΣ ΣΠΟΥΔΩΝ ΠΡΟΓΡΑΜΜΑΤΟΣ «ΚΟΙΝΩΝΙΚΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ» Ακαδημαϊκό έτος

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, :00-10:00 π.μ.

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

ΕΡΓΑΣΙΑ 2. Κατασκευάζοντας Ημερολόγια. Ημερομηνία Ανάρτησης: 23/02/2018 Ημερομηνία Παράδοσης: 13/03/2018, 09:00

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Δευτέρα 22 / 11 / 2017 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΥΠΗΡΕΣΙΑ ΣΠΟΥΔΩΝ ΚΑΙ ΦΟΙΤΗΤΙΚΗΣ ΜΕΡΙΜΝΑΣ. Οδηγός Καταχώρησης Εξαίρεσης Απαιτήσεων Μαθημάτων από Διδάσκοντες

ΥΠΗΡΕΣΙΑ ΣΠΟΥΔΩΝ ΚΑΙ ΦΟΙΤΗΤΙΚΗΣ ΜΕΡΙΜΝΑΣ

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

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Προγραμματισμός Υπολογιστών με C++

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

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

Ασφαλές Μέσο Κοινωνικής Δικτύωσης και Ηλεκτρονικής Μάθησης για εκπαιδευτικούς και μαθητές/τριες

Για την υλοποίηση του προγράμματος χρειάζονται 3 βασικές κλάσεις.

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

ΕΡΓΑΣΙΑ 1 Ημερομηνία Ανάρτησης: 02/02/2017 Ημερομηνία Παράδοσης: 16/02/2017, 09:00 π.μ. Στόχος Ορισμός

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τµήµα Ψηφιακών Συστηµάτων Μάθηµα: «Αντικειµενοστρεφής Προγραµµατισµός» 2 ο εξάµηνο, Εαρινή περίοδος

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

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

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Πανεπιστηµιο Πειραιως Σχολη Τεχνολογιων Πληροφορικης και Επικοινωνιων Τµηµα Ψηφιακων Συστηµατων οµές εδοµένων η Εργασία

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


ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Ασφαλές Μέσο Κοινωνικής Δικτύωσης και Ηλεκτρονικής Μάθησης για εκπαιδευτικούς και μαθητές/τριες

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ.

B. Ενσωμάτωση Ιθαγενών Μεθόδων

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

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

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

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

Transcript:

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Χειμερινό Εξάμηνο 2018-2019 Τμήμα Ηλεκτρολόγων Μηχανικών Τ.Ε. 2 ο Σετ Ασκήσεων παράδοση έως: Παρασκευή 11 Ιανουαρίου 2019 ΔΙΑΒΑΣΤΕ ΠΡΟΣΕΧΤΙΚΑ ΤΙΣ ΠΑΡΑΤΗΡΗΣΕΙΣ/ΟΔΗΓΙΕΣ! που περιγράφονται στο τέλος του τρέχοντος σετ ασκήσεων. Μη επαρκής τήρηση των συγκεκριμένων οδηγιών θα επηρεάσει (αρνητικά) τη βαθμολόγηση του σετ ασκήσεων. 1 η Άσκηση (40%) Αναπτύξτε ένα πρόγραμμα σε Java (ως project του NetBeans) το οποίο θα διαχειρίζεται επιβάτες σε αεροπορικές πτήσεις. Υλοποιήστε τις παρακάτω δύο κλάσεις: 1. Flight: κρατάει πληροφορίες για μία πτήση. έχει πεδία την αφετηρία, τον προορισμό της πτήσης και μία λίστα (ArrayList) με τους επιβάτες (Passenger) της πτήσης. η αφετηρία και ο προορισμός αρχικοποιούνται στον constructor. υλοποιήστε τη μέθοδο addpassenger, η οποία παίρνει ως όρισμα ένα επιβάτη και τον προσθέτει στη λίστα επιβατών. υλοποιήστε τη μέθοδο removepassenger, η οποία παίρνει ως όρισμα έναν επιβάτη και τον αφαιρεί από τη λίστα επιβατών. υλοποιήστε τη μέθοδο tostring, η οποία επιστρέφει ένα String με την αφετηρία, τον προορισμό και τη λίστα επιβατών. 2. Passenger: κρατάει πληροφορίες για ένα επιβάτη. έχει πεδία το νούμερο του διαβατηρίου του επιβάτη, και την πτήση (Flight) στην οποία ταξιδεύει (είναι null αν δεν ταξιδεύει). τo νούμερο του διαβατηρίου αρχικοποιείται στον constructor. υλοποιήστε τη μέθοδο board, η οποία παίρνει ως όρισμα μια πτήση (Flight) και προσθέτει τον επιβάτη στην πτήση αυτή, μόνο εάν δε συμμετέχει ήδη σε κάποια πτήση. Τετάρτη, 26 Δεκέμβρη 2018 2 ο Σετ Ασκήσεων 1

υλοποιήστε τη μέθοδο disembark, η οποία, εφόσον ο επιβάτης συμμετέχει σε κάποια πτήση, τον αφαιρεί από την πτήση αυτή. υλοποιήστε τη μέθοδο connect, η οποία παίρνει ως όρισμα μια πτήση (Flight) και μεταφέρει τον επιβάτη από την πτήση στην οποία βρίσκεται στη νέα πτήση. Για να γίνει η σύνδεση θα πρέπει ο επιβάτης να είναι σε μία πτήση και ο προορισμός της τρέχουσας πτήσης να είναι ίδιος με την αφετηρία της νέας πτήσης. παρατηρήστε ότι η υλοποίηση των παραπάνω μεθόδων απαιτεί την κατάλληλη ενημέρωση πληροφοριών που διατηρούνται σε αντικείμενα και των δύο κλάσεων (Flight και Passenger). Μάλιστα την περίπτωση της connect, θα πρέπει να ενημερωθούν δύο αντικείμενα της κλάσης Flight. Σας δίνεται μία κλάση FlightTest η οποία περιέχει την main. Η έξοδος του προγράμματος, χωρίς τον κώδικα σε σχόλια, θα πρέπει να είναι: Passenger 1 Flight:NYC-SFO Passenger 3 Η έξοδος του προγράμματος, συμπεριλαμβανομένου του κώδικα σε σχόλια, θα πρέπει να είναι: Passenger 1 Flight:NYC-SFO Passenger 3 2 η Άσκηση (60%) Ο στόχος της άσκησης είναι να εξασκηθείτε με την κληρονομικότητα. Αναπτύξτε ένα πρόγραμμα σε Java (ως project του NetBeans) το οποίο θα υλοποιεί ένα σύστημα κοινωνικής δικτύωσης (ΣΚΔ), π.χ. Facebook. 1. κλάση Post: κρατάει πληροφορία για μία ανάρτηση (post) στο ΣΚΔ. i. έχει τα εξής πεδία: i. username (τύπου String), το οποίο κρατάει το όνομα του χρήστη, ii. text (τύπου String), το οποίο κρατάει το κείμενο της ανάρτησης, και Τετάρτη, 26 Δεκέμβρη 2018 2 ο Σετ Ασκήσεων 2

iii. shares, το οποίο κρατάει τον αριθμό των φορών που έχει αναμεταδοθεί (share) η ανάρτηση. ii. ο constructor αρχικοποιεί το όνομα του χρήστη και το κείμενο. iii. υλοποιήστε τη μέθοδο tostring, η οποία επιστρέφει ένα String με το όνομα και το κείμενο. iv. υλοποιήστε τη μέθοδο display, η οποία τυπώνει το αποτέλεσμα της tostring και τον αριθμό των αναμεταδόσεων. v. υλοποιήστε επίσης accessor και mutator μεθόδους για το πεδίο shares. 2. κλάση VideoPost: παράγεται (κληρονομεί) από την κλάση Post και κρατάει πληροφορία για ένα post το οποίο περιέχει και ένα βίντεο. Η κλάση έχει το πεδίο video (τύπου String) το οποίο κρατάει το όνομα του αρχείου με το βίντεο. Ο constructor παίρνει σαν ορίσματα το όνομα του χρήστη, το κείμενο και το όνομα του αρχείου. Υπερβείτε (override) τη μέθοδο tostring() ώστε να επιστρέφει και το όνομα του αρχείου του βίντεο. 3. κλάση SharedPost: παράγεται (κληρονομεί) από την κλάση Post και κρατάει πληροφορία για ένα post το οποίο αναμεταδίδεται (shared) από ένα μία άλλη ανάρτηση (Post). Η κλάση έχει το πεδίο original τύπου Post το οποίο είναι η αρχική ανάρτηση η οποία αναμεταδόθηκε. Ο constructor παίρνει ως ορίσματα το όνομα του χρήστη, το κείμενο και το την αρχική ανάρτηση. Ορίστε επίσης ένα constructor ο οποίος παίρνει ως όρισμα μόνο το όνομα του χρήστη και το αρχικό post και αρχικοποιεί το κείμενο στο κενό String. Όταν δημιουργείται το αντικείμενο θα πρέπει να ενημερώνεται και ο αριθμός των αναμεταδόσεων (shares) της αρχικής ανάρτησης (Post). Υπερβείτε (override) την μέθοδο tostring() ώστε να επιστρέφει και το περιεχόμενο της αρχικής ανάρτησης με τη λέξη Shared: μπροστά. 4. κλάση Facebook: η οποία θα περιέχει τη main καθώς και τη μέθοδο displayposts η οποία παίρνει σαν όρισμα ένα ArrayList από αναρτήσεις (Post) και τις εμφανίζει. Αρχικά, η main δημιουργεί ένα ArrayList από αναρτήσεις (Post) στο οποίο θα προσθέσει τέσσερις αναρτήσεις: i. μία ανάρτηση (Post) από το χρήστη Ellen, με κείμενο Hello World!, ii. μία ανάρτηση με βίντεο (VideoPost) από το χρήστη Frank, με κείμενο Funny! και όνομα αρχείου βίντεο Cat video, iii. μία αναμετάδοση (SharedPost) της δεύτερης ανάρτησης από το χρήστη George με κείμενο LOL!, και Τετάρτη, 26 Δεκέμβρη 2018 2 ο Σετ Ασκήσεων 3

iv. μία αναμετάδοση (SharedPost) της δεύτερης ανάρτησης από το χρήστη Henry χωρίς κείμενο. Έπειτα η main καλεί τη μέθοδο displayposts για να εμφανίσει τη λίστα των αναρτήσεων. Σημείωση: Όλα τα πεδία σε όλες τις κλάσεις θα πρέπει να ορίζονται private. Το αποτέλεσμα θα πρέπει να μοιάζει ως εξής: Ellen:Hello World! Frank:Funny!, video:cat video 2 shares George:LOL! Shared: Frank:Funny!, video:cat video Henry: Shared: Frank:Funny!, video:cat video Παρατηρήσεις: 1. ΔΙΑΒΑΣΤΕ ΠΡΟΣΕΧΤΙΚΑ ΤΙΣ ΠΑΡΑΚΑΤΩ ΠΑΡΑΤΗΡΗΣΕΙΣ/ΟΔΗΓΙΕΣ! Μη επαρκής τήρηση των παρακάτω οδηγιών θα επηρεάσει (αρνητικά) τη βαθμολόγηση του σετ ασκήσεων. 2. Το σετ ασκήσεων είναι ατομικό. Ανατρέξτε στην 1 η διάλεξη του μαθήματος ("Γνωριμία με το μάθημα") εάν απορείτε για το τι αυτό μπορεί να σημαίνει. 3. Για την καταχώρηση της τελικής σας βαθμολογίας θα πρέπει απαραίτητα να εξεταστείτε προφορικά για το τρέχον σετ ασκήσεων. 4. Τις απαντήσεις σας για το σετ ασκήσεων θα πρέπει να τις παραδώσετε μέσω του eclass. 5. Η ανάπτυξη της κάθε άσκησης θα πρέπει να γίνει ως ξεχωριστό project στο NetBeans. 6. Για την κάθε άσκηση, μπορείτε να συμπεριλάβετε ένα επιπλέον αρχείο README (στο φάκελο του αντίστοιχου NetBeans project) με αναφορά σε επιπλέον σχεδιαστικές επιλογές που ακολουθήσατε ή προβλήματα που αντιμετωπίσατε, κατά την ανάπτυξη των προγραμμάτων σας. 7. Θα πρέπει να παραδώσετε μόνο ένα συμπιεσμένο αρχείο με όνομα <ονοματεπώνυμο>_<am>, το οποίο θα περιέχει τα NetBeans projects (ένα για κάθε άσκηση) που υλοποιήσατε, έτσι ώστε όταν τα συζητήσουμε από κοντά να μπορούν να γίνουν άμεσα import στο NetBeans. 8. Τα προγράμματά σας θα πρέπει να περιέχουν επαρκή σχόλια. Κάθε πρόγραμμα θα πρέπει να ξεκινά περιγράφοντας τη λειτουργικότητά του. Τετάρτη, 26 Δεκέμβρη 2018 2 ο Σετ Ασκήσεων 4

9. Επιλέξτε κατάλληλα ονόματα για τις κλάσεις σας, τα πεδία τους, τις μεθόδους τους και τις μεταβλητές τους, βάσει των αρχών που συζητήσαμε στις διαλέξεις του μαθήματος. 10. Βεβαιωθείτε ότι τα προγράμματα που παραδίδετε μεταγλωττίζονται χωρίς προβλήματα και εκτελούνται σωστά. 11. Επιτρέπεται καθυστερημένη παράδοση του σετ ασκήσεων. Ωστόσο, εάν παραδώσετε το σετ ασκήσεών σας k μέρες μετά τη λήξη της προθεσμίας, τότε θα βαθμολογηθεί με άριστα το (100 - k*10)%. Καλή επιτυχία! Ελευθέριος Κοσμάς Τετάρτη, 26 Δεκέμβρη 2018 2 ο Σετ Ασκήσεων 5