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

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

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

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

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

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

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

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

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

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

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

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

ΠΠΜ 220: Στατική Ανάλυση των Κατασκευών Ι

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

ΠΠΜ 220: Στατική Ανάλυση των Κατασκευών Ι

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

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

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

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

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

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

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

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

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

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

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

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

ΠΠΜ 320: Δυναμική Ανάλυση των Κατασκευών

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

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

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

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

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

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

Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 501: Προχωρημένη Ανάλυση Κατασκευών με Η/Υ. Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο

ΠΠΜ 221: Ανάλυση Κατασκευών με Μητρώα

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

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

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

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

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

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

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

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

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

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

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

ΠΠΜ 220: Στατική Ανάλυση των Κατασκευών Ι

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

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

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

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

Γενικά (για τις γραπτές εξετάσεις)

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

ΠΠΜ 501: Προχωρημένη Ανάλυση Κατασκευών με Η/Υ

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

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

Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

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

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΠΠΜ 221: Ανάλυση Κατασκευών με Μητρώα

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Δομημένος Προγραμματισμός

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

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

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ

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

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

Λογισµικό (Software SW) Γλώσσες

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

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

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

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

Εργαστήριο 10 Κλάσεις

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΠΜ 220: Στατική Ανάλυση των Κατασκευών Ι

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

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

Περιεχόμενα. Πρόλογος 11

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

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

Δομημένος Προγραμματισμός

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

ΚΛΑΣΕΙΣ ΜΕΘΟΔΟΙ - ΑΝΤΙΚΕΙΜΕΝΑ

Transcript:

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Ακαδημαϊκό Έτος 2018-19, Χειμερινό Εξάμηνο Τελική Εξέταση 6:00-8:00 μ.μ. (120 λεπτά) Κυριακή, 16 Δεκεμβρίου, 2018 Όνομα: Επίθετο: Αριθμός Ταυτότητας: E-mail: Τηλ. Επικοινωνίας Πρόβλημα Μονάδες Βαθμός 1 4 2 6 3 8 4 6 5 16 6 8 7 12 8 40 Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!! Τελικός Βαθμός: ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 1/17

Άσκηση 1: [4 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Τελική Εξέταση Έχοντας υπόψη σας και τον πιο κάτω πίνακα, εξηγήστε ποιες μέθοδοι έχουν πρόσβαση στα μέλη μιας τάξης Α, η οποία έχει οριστεί σε ένα πακέτο Β, που δεν ορίζονται με οποιοδήποτε κωδικό πρόσβασης (access specifier). Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 2/17

Άσκηση 2: [6 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Τελική Εξέταση Τι είναι η μέθοδος finalize(), που ορίζεται και πότε εκτελείται; ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 3/17

Άσκηση 3: [8 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Τελική Εξέταση Τί είναι στατικά μέλη (δεδομένων) μιας τάξης, τι είναι στατικές μέθοδοι της τάξης και πως διαφέρουν οι στατικές από τις μη στατικές μεθόδους σε σχέση με τις πληροφορίες που τους αποστέλνονται κατά την κλήση τους αλλά και την πρόσβαση που έχουν στα μέλη της τάξης; Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 4/17

Άσκηση 4: [6 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Τελική Εξέταση Ποια η σημασία της χρήσης του «final» στους ορισμούς μεταβλητών (instance variables) μιας τάξης και ποια η σημασία της χρήσης του στον ορισμό της ίδιας της τάξης; ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 5/17

Άσκηση 5: [16 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Τελική Εξέταση Θεωρώντας την πιο κάτω ιεραρχία τάξεων, με τις τάξεις Y και Z να είναι υποτάξεις της X, απαντήστε στα επόμενα 3 σχετικά ερωτήματα: X + <<Constructor>> X() + f() Y Z + <<Constructor>> Y() + f() +g() + <<Constructor>> Z() + f() (i) Δώστε τις εντολές που απαιτούνται για να δημιουργηθεί ένα αντικείμενο της τάξης X στο οποίο θα αναφέρεται η αναφορά x, η οποία θα είναι τύπου X, και την εντολή που απαιτείται για να κληθεί η μέθοδος f() για το συγκεκριμένο αντικείμενο. (ii) Δώστε τις εντολές που απαιτούνται για να δημιουργηθεί ένα αντικείμενο της τάξης Y στο οποίο θα αναφέρεται η αναφορά y, η οποία θα είναι τύπου X, και την εντολή που απαιτείται για να κληθεί η μέθοδος f() για το συγκεκριμένο αντικείμενο. Ποιας τάξης θα είναι η μέθοδος f() που θα κληθεί και γιατί. Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 6/17

(iii) Είναι σωστές οι πιο κάτω εντολές, και εάν όχι ποιο/α είναι το/α λάθος/η και γιατί; X z = new Z(); z.g(); ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 7/17

Άσκηση 6: [8 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Τελική Εξέταση Εξηγήστε πως γίνεται η διαχείριση ενός συμβάντος (π.χ. ενός actionevent) με τη χρήση μιας ανώνυμης εσωτερικής τάξης. Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 8/17

Άσκηση 7: [12 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Τελική Εξέταση Εξηγήστε τι πρέπει να κάνετε για να αναπτύξετε τον κώδικα που απαιτείται για τη δημιουργία ενός Applet, πως γίνεται η μεταγλώττιση του κώδικά σας εάν αυτός είναι γραμμένος σε ένα αρχείο με το όνομα MyApplet.java (θεωρώντας ότι θα γίνει χειρωνακτικά και όχι με τη χρήση κάποιου IDE), τι θα προκύψει και πως αυτό θα χρησιμοποιηθεί για να εμφανιστεί το Applet σας σε μια ιστοσελίδα. ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 9/17

Άσκηση 8: [40 μονάδες] ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018 Τελική Εξέταση Στο UML διάγραμμα της επόμενης σελίδας δίνεται μια ιεραρχία τάξεων δομικών μελών που βασίζεται στη αόριστη (abstract) υπερτάξη StructuralElement, η οποία υλοποιεί το interface Volumeable. Η διασύνδεση (interface) Volumeable έχει μια μέθοδο την computevolume() που επιστρέφει, σαν double τιμή, τον όγκο του δομικού μέλους. Η αόριστη τάξη StructuralElement, έχει ένα private μέλος το id, το οποίο είναι τύπου int, έχει μια μέθοδο κατασκευής (constructor) με παραμέτρους το id που είναι τύπου int, επαναορίζει κατάλληλα τη μέθοδο tostring() και, παρά το ότι υλοποιεί το interface Volumeable, δεν παρέχει τη μέθοδο που καθορίζεται στη διασύνδεση Volumeable. Η αόριστη τάξη LinearStructuralElement, επεκτείνει την τάξη StructuralElement, έχει ένα private μέλος το length, το οποίο είναι τύπου double και στο οποίο αποθηκεύεται το μήκος του γραμμικού μέλους, έχει μια μέθοδο κατασκευής (constructor) με παραμέτρους το id που είναι τύπου int και το length που είναι τύπου double, ορίζει τη μέθοδο getlength() που επιστρέφει το μήκος του γραμμικού μέλους και επαναορίζει κατάλληλα τη μέθοδο tostring(). Η τάξη Rod επεκτείνει την τάξη LinearStructuralElement, έχει ένα private μέλος το area, το οποίο είναι τύπου double και στο οποίο αποθηκεύεται η εγκάρσια επιφάνεια του γραμμικού μέλους, έχει μια μέθοδο κατασκευής (constructor) με παραμέτρους το id που είναι τύπου int, το length και το area που είναι τύπου double, ορίζει τη μέθοδο computevolume() που επιστρέφει τον όγκο του γραμμικού μέλους και επαναορίζει κατάλληλα τη μέθοδο tostring(). Η τάξη Beam επεκτείνει την τάξη LinearStructuralElement, έχει δύο private μέλη, το width και το height, τα οποία είναι τύπου double και στα οποίο αποθηκεύονται το πλάτος και το ύψος της εγκάρσιας διατομής του γραμμικού μέλους, έχει μια μέθοδο κατασκευής (constructor) με παραμέτρους το id που είναι τύπου int, το length, το width και το height που είναι τύπου double, ορίζει τη μέθοδο computevolume() που επιστρέφει τον όγκο του γραμμικού μέλους και επαναορίζει κατάλληλα τη μέθοδο tostring(). 1. Θα πρέπει να αναπτύξετε τον αντίστοιχο κώδικα σε Java βάσει του UML διαγράμματος παρέχοντας όλες τις αναγκαίες τάξεις με όλες τις μεθόδους, οι οποίες απλά θα εκτυπώνουν κάποιο σχετικό μήνυμα. Πρέπει να παρασχεθούν όλες οι μέθοδοι κατασκευής (constructors) οι οποίοι πρέπει να καλούν τις κατάλληλες μεθόδους υπερτάξεών τους. 2. Επίσης ζητείται να αναπτύξετε ένα κύριο πρόγραμμα, main(), με το οποίο θα δοκιμαστούν οι αναπτυσσόμενες τάξεις, όπου θα πρέπει να: (α) Οριστεί ένας πίνακας αναφορών τύπου StructuralElement με το όνομα elements και με 2 στοιχεία. (i) Το 1 ο στοιχείο να είναι ένα Beam με id 11, μήκος (length) 3.5, πλάτος (width) 0.3 και ύψος (height) 0.6. (ii) Το 2 ο στοιχείο να είναι ένα Rod με id 22, μήκος (length) 5.0 και επιφάνεια (area) 2.4. (β) Μέσα σε ένα βρόγχο να εκτυπωθούν όλα τα δομικά μέλη διαδοχικά, αξιοποιώντας (έμμεσα) τις μεθόδους tostring() των πιο πάνω τάξεων, και ο όγκος τους, αξιοποιώντας τη μέθοδο computevolume(), όπως πιο κάτω: Structural Elements: 11: ID = 11 Length = 3.5 Width = 0.3 Height=0.6 Volume=0.63 22: ID = 22 Length = 5.0 Area = 2.4 Volume=12.0 Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 10/17

<<interface>> Volumeable + computevolume() : double StructuralElement - id: int + <<Constructor>> StructuralElement (id : int) + tostring() : String - length : double LinearStructuralElement + <<Constructor>> LinearStructuralElement(id:int, length:double) + getlength() : double + tostring() : String Rod - area: double + <<Constructor>> Rod (id:int, length:double, area:double) + tostring() : String Beam - width : double - height : double + <<Constructor>> Beam(id:int, length:double, width:double, height:double) + tostring() : String ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 11/17

/* Εδώ δώστε τον ορισμό της τάξης Final_2018, στην οποία παρέχεται η μέθοδος main(), με το οποίο θα δοκιμαστούν οι αναπτυσσόμενες τάξεις, όπου θα πρέπει να: (α) Οριστεί ένας πίνακας αναφορών τύπου StructuralElement με το όνομα elements και με τα εξής 2 στοιχεία. (i) Το 1ο στοιχείο να είναι ένα Beam με id 11, μήκος (length) 3.5, πλάτος (width) 0.3 και ύψος (height) 0.6. (ii) Το 2ο στοιχείο να είναι ένα Rod με id 22, μήκος (length) 5.0 και επιφάνεια (area) 2.4. (β) Μέσα σε ένα βρόγχο να εκτυπωθούν όλα τα δομικά μέλη διαδοχικά, αξιοποιώντας (έμμεσα) τις μεθόδους tostring() των πιο πάνω τάξεων, και ο όγκος τους, αξιοποιώντας τη μέθοδο computevolume(), όπως πιο κάτω: Structural Elements: 11: ID = 11 Length = 3.5 Width = 0.3 Height=0.6 Volume=0.63 22: ID = 22 Length = 5.0 Area = 2.4 Volume=12.0 */ Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 12/17

/* Εδώ θα πρέπει να δοθεί ο ορισμός της διασύνδεσης Volumeable */ /* Εδώ θα πρέπει να δοθεί ο ορισμός της αόριστης τάξης StructuralElement */ ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 13/17

/* Εδώ θα πρέπει να δοθεί ο ορισμός της αόριστης τάξης LinearElement */ Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 14/17

/* Εδώ θα πρέπει να δοθεί ο ορισμός της τάξης Rod */ ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 15/17

/* Εδώ θα πρέπει να δοθεί ο ορισμός της τάξης Beam */ Πέτρος Κωμοδρόμος, 2018, Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος: 16/17

ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2018, 17/17