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



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

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

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

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

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

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

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

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

Ανάλυση άσκησης. Employee. SalariedEmployee CommissionEmployee HourlyEmployee. BasePlusCommissionEmployee

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Από τη UML στον Κώδικα. Μέρος Α

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

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

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

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

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

Generics και ArrayLists

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 5: Κατασκευαστές (Constructors)

Η λέξη κλειδί this. Γαβαλάς Δαμιανός

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

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

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

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

Π ί ν α κ ε ς - A r r a y s

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

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

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

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

(Απλή) Κληρονομικότητα

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

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

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

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

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

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

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

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

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

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

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Copy Constructor Deep and Shallow Copies

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

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

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

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

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

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

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

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

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

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

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

Transcript:

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 3 ΘΕΜΑΤΑ: Κλάσεις Αντικείμενα Δομητές/Κατασκευαστές - Μέθοδοι - Παράμετροι Προσοχή!!! Να εκτελεστούν πρώτα όλες οι παραλλαγές της Box (ασκήσεις 1,2,3,4) Άσκηση 1 η Να γραφεί πρόγραμμα που δημιουργεί 2 αντικείμενα τύπου Box, χωρίς δομητή και σε μία μέθοδο τύπου void() υπολογίζει και εμφανίζει τον όγκο του κάθε Box. Ο ορισμός των τιμών (χαρακτηριστικά) του κάθε κουτιού θα γίνει μέσα στο κυρίως πρόγραμμα. class Box { double width; double height; double depth; void volume() { System.out.println("Ogkos = " + (width * height * depth)); class BoxDemo1 { public static void main(string args[]) { Box mybox1 = new Box(); Box mybox2 = new Box(); mybox1.width = 10; mybox1.height = 20; mybox1.depth = 15; mybox2.width = 3; mybox2.height = 6; mybox2.depth = 9; mybox1.volume(); mybox2.volume(); Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 1

Άσκηση 2 η Να γραφεί πρόγραμμα που δημιουργεί 2 αντικείμενα τύπου Box, χωρίς δομητή και σε μία μέθοδο τύπου return() υπολογίζει τον όγκο του Box. Ο ορισμός των τιμών (χαρακτηριστικά) του κάθε κουτιού καθώς και η εμφάνιση των αποτελεσμάτων (όγκων των κουτιών) θα γίνει μέσα στο κυρίως πρόγραμμα. class Box { double width; double height; double depth; double volume() { return width * height * depth; class BoxDemo2 { public static void main(string args[]) { Box mybox1 = new Box(); Box mybox2 = new Box(); mybox1.width = 10; mybox1.height = 20; mybox1.depth = 15; mybox2.width = 3; mybox2.height = 6; mybox2.depth = 9; double vol; vol = mybox1.volume(); System.out.println("Volume is " + vol); vol = mybox2.volume(); System.out.println("Volume is " + vol); Άσκηση 3 η Να γραφεί πρόγραμμα, παραλλαγή της άσκησης 1, που δημιουργεί 2 αντικείμενα τύπου Box, αλλά με πλήρη δομητή και σε μία μέθοδο τύπου void() υπολογίζει και εμφανίζει τον όγκο του κάθε Box. Ο ορισμός των τιμών (χαρακτηριστικά) του κάθε κουτιού θα γίνει μέσα στο κυρίως πρόγραμμα στον ορισμό του κάθε αντικειμένου-box (τελεστής new). Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 2

class Box { double width; double height; double depth; Box(double w, double h,double d) { width = w; height = h; depth = d; void volume() { System.out.println("Ogkos = " + (width * height * depth)); class BoxDemo3 { public static void main(string args[]) { Box mybox1 = new Box(10, 20, 15); Box mybox2 = new Box(3, 6, 9); mybox1.volume(); mybox2.volume(); Άσκηση 4 η Να γραφεί πρόγραμμα, παραλλαγή της άσκησης 2, που δημιουργεί 2 αντικείμενα τύπου Box, αλλά με πλήρη δομητή και σε μία μέθοδο τύπου return() υπολογίζει τον όγκο του κάθε Box Ο ορισμός των τιμών (χαρακτηριστικά) του κάθε κουτιού θα γίνει στην new και η εμφάνιση των αποτελεσμάτων (όγκων των κουτιών) θα γίνει μέσα στο κυρίως πρόγραμμα. class Box { double width; double height; double depth; Box(double w, double h, double d) { width = w; height = h; depth = d; double volume() {return width * height * depth; Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 3

class BoxDemo4 { public static void main(string args[]) { Box mybox1 = new Box(10, 20, 15); Box mybox2 = new Box(3, 6, 9); double vol; vol = mybox1.volume(); System.out.println("Volume is " + vol); vol = mybox2.volume(); System.out.println("Volume is " + vol); Άσκηση 5 η α) Να γραφεί πρόγραμμα Java που δημιουργεί την κλάση Circle, με τις απαραίτητες μεθόδους: setradius(): που καταχωρεί τιμή ακτίνας στα αντικείμενα τύπου Circle, getradius(): που επιστρέφει την ακτίνα, getdiameter(): που επιστρέφει τη διάμετρο (2 x ακτίνα) και την getarea(): που επιστρέφει το εμβαδό του κύκλου. Το πρόγραμμα θα δημιουργήσει ένα αντικείμενο τύπου Circle με ακτίνα (radius) = 100 και θα εμφανίσει τα αποτελέσματα (ακτίνα, διάμετρο και εμβαδό του κύκλου). class Circle { private int radius = 0; void setradius(int y) {radius = y; int getradius() { return(radius); int getdiameter() {return(2 * radius); double getarea() {return((int)(3.14159 * radius * radius)); class CircleDemo { public static void main(string[] args) { Circle kyklos = new Circle(); kyklos.setradius(100); System.out.println("Aktina toy Kykloy = " + kyklos.getradius()); System.out.println("Diametros toy Kykloy = " + kyklos.getdiameter()); System.out.println("Emvadon toy Kykloy = " + kyklos.getarea()); Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 4

β) Παραλλαγή της άσκησης-5 : Να γραφεί το ίδιο πρόγραμμα αλλά με τη χρήση δομητή κατασκευαστή. Άσκηση 6 η Να γραφεί πρόγραμμα Java που υλοποιεί την κλάση υπάλληλος (περιγράφει τα στοιχεία ενός υπαλλήλου). Το πρόγραμμα θα περιέχει δύο ξεχωριστές κλάσεις τις: 1) class Employee: που περιέχει τα πεδία μεταβλητές: FirstName, LastName, και Salary, τον αρχικό (default) δομητή-κατασκευαστή, και τις μεθόδους: setfirstname(): που καταχωρεί το όνομα του υπάλληλου, getfirstname(): που επιστρέφει το όνομα του υπάλληλου, setlastname(): που καταχωρεί το επίθετο του υπάλληλου, getlastname(): που επιστρέφει το επίθετο του υπάλληλου, setsalary(): που καταχωρεί τον μισθό του υπάλληλου, getsalary():που επιστρέφει τον μισθό του υπάλληλου. 2) class TestEmployee, η οποία: α) δημιουργεί ένα αντικείμενο του τύπου Employee, β) αρχικοποιεί τα στοιχεία του υπάλληλου με κλήσεις στις κατάλληλες set μεθόδους γ) λαμβάνει τα στοιχεία του υπάλληλου με κλήση στις κατάλληλες get μεθόδους και δ) εμφανίζει τα στοιχεία του υπάλληλου class Employee { private String FirstName; private String LastName; private float Salary; public Employee() { FirstName =""; LastName =""; Salary = 0.0f; public void setfirstname(string n){ FirstName = n; public String getfirstname() { return FirstName; public void setlastname(string n){ LastName = n; public String getlastname() { return LastName; public void setsalary(float Euro) { Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 5

Salary = Euro; public float getsalary() { return Salary; class TestEmployee { public static void main(string[] args){ Employee ypallilos = new Employee(); String name, epitheto; float misthos; ypallilos.setfirstname("nikos"); ypallilos.setlastname("nikas"); ypallilos.setsalary(1600.0f); name = ypallilos.getfirstname(); epitheto = ypallilos.getlastname(); misthos = ypallilos.getsalary(); System.out.println("Onoma = " + name); System.out.println("Epitheto = " + epitheto); System.out.println("Misthos = " + misthos); Παραλλαγή της 6 ης άσκησης (Employee): Α) Μια παραλλαγή της άσκησης είναι να χρησιμοποιήσετε ένα πλήρη δομητή κατασκευαστή. Τότε οι set methods δεν είναι απαραίτητοι, αλλά είναι απαραίτητες οι μέθοδοι επιστροφής των στοιχείων του υπάλληλου - get methods. class Employee { private String FirstName; private String LastName; private float Salary; //arxikos constructor public Employee() { FirstName =""; LastName =""; Salary = 0.0f; //pliris constructor public Employee(String First, String Last, float salary) { FirstName = First; LastName = Last; Salary = salary; public String getfirstname() { Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 6

return FirstName; public String getlastname() { return LastName; public float getsalary() { return Salary; class TestEmployee { public static void main(string[] args){ Employee ypallilos = new Employee("Nikos", "Nikas", 1600.00f); String name, epitheto; float misthos; name = ypallilos.getfirstname(); epitheto = ypallilos.getlastname(); misthos = ypallilos.getsalary(); System.out.println("Onoma = " + name); System.out.println("Epitheto = " + epitheto); System.out.println("Misthos = " + misthos); Άσκηση 7 η Στην παρακάτω άσκηση θα χειριστούμε τον τραπεζικό λογαριασμό ενός πελάτη. Στην επίλυση του προβλήματος θα χρειαστούμε σαν δεδομένα : Τον αριθμό λογαριασμού Το όνομα του λογαριασμού Το τρέχον υπόλοιπο του λογαριασμού Ο Δομητής Constructor θα δημιουργήσει το αντικείμενο και θα αρχικοποιήσει τα τρία αυτά πεδία - μεταβλητές. Οι μέθοδοι που θα δημιουργήσουμε θα : Δέχονται μία κατάθεση Θα επεξεργάζεται ένα τσεκ Θα χειρίζεται το τρέχον υπόλοιπο Στην παρακάτω πρώτη μορφή δεν θα περιλάβουμε τις μεθόδους. Είναι μια πρώτη κατασκευή της κλάσης. Στο κομμάτι προγράμματος υπάρχει και ο έλεγχος της κλάσης. Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 7

class CheckingAccount { // μεταβλητές του αντικειμένου String accountnumber; String accountholder; int balance; //δομητές CheckingAccount( String accnumber, String holder, int start ) { accountnumber = accnumber ; accountholder = holder ; balance = start ; class CheckingAccountTester { public static void main( String[] args ) { CheckingAccount account1 = new CheckingAccount( "123", "Bob", 100 ); System.out.println(account1.accountNumber+" "+account1.accountholder+" "+account1.balance); Οι προτεινόμενοι μέθοδοι θα έχουν την παρακάτω μορφή : class CheckingAccount { // μεταβλητές του αντικειμένου String accountnumber; String accountholder; int balance; // δομητές - constructors CheckingAccount( String accnumber, String holder, int start) { accountnumber = accnumber ; accountholder = holder ; balance = start ; // επιστροφή του υπολοίπου int currentbalance() { return balance ; // χειρισμός της κατάθεσης void processdeposit(int amount) { balance = balance + amount ; // χειρισμός του check void processcheck( int amount ) { balance = balance - amount; Ένας έλεγχος των ανωτέρω μεθόδων είναι και ο παρακάτω : class CheckingAccountTester { public static void main(string[] args) { CheckingAccount account1 = new CheckingAccount( "123", "Bob", 100 ); System.out.println( account1.currentbalance() ); account1.processdeposit( 2000 ); account1.processcheck( 1500 ); System.out.println( account1.currentbalance() ); Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 8

Μία ακόμη μέθοδος θα μπορούσε να είναι και η παρακάτω που εμφανίζει τα αποτελέσματα και για τις τρεις μεθόδους. void display() { System.out.println( accountnumber + "\t" + accountholder + "\t" + balance ); Ο έλεγχος της display() θα μπορούσε να γίνει με τον κώδικα : class CheckingAccountTester { public static void main( String[] args ) { CheckingAccount account1 = new CheckingAccount( "123", "Bob", 100 ); account1.display() ; account1.processdeposit( 2000 ); account1.processcheck( 1500 ); account1.display() ; Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 9