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



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

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

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

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

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

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

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

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

Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods

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

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

Wrapper Classes Τοποθέτηση Δεδομένων Κλήση Μεθόδων. Παναγιώτης Σφέτσος, PhD

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

Generics και ArrayLists

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

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

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

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII

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

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

Βασικά της γλώσσας JAVA

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 8/4/2008. Πίνακες (Arrays)

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

2 using namespace s t d ; 4 { 12 int t= x ; 6 x=y ; 7 y=t ; 8 } 9 11 { 13 x= y ; 14 y=t ; 15 } {

Transcript:

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 4 ΘΕΜΑΤΑ: Κλάσεις Αντικείμενα Δομητές/Κατασκευαστές - Μέθοδοι - Παράμετροι Συνέχεια με μεθόδους κλάσεων (4-ασκήσεις) χωρίς την χρήση αντικειμένων, με μεθόδους αντικειμένων και μεικτού τύπου Άσκηση 1 η Πρόσθεση δύο αριθμών στην παραμετρική μέθοδο κλάσης - add() τύπου επιστρεφόμενου αποτελέσματος (τύπου return) και με κλήση από την main(). class TestAdd1 { int x = 5; int y = 2; int sum = add(x, y); //klisi tis methodoy perasma parametron System.out.println("To athroisma tou " + x + " kai " + y + " einai = " + sum); public static int add(int num1, int num2) { return result; Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 1

Άσκηση 2 η Πρόσθεση δύο αριθμών στην παραμετρική μέθοδο κλάσης - add() τύπου void και με κλήση από την main(). class TestAdd2 { int x = 5; int y = 2; add(x, y); //klisi tis methodoy perasma parametron public static void add(int num1, int num2) { System.out.println("To athroisma tou "+num1+" kai "+num2+" einai = "+result); Άσκηση 3 η (χρήση αντικειμένου) Πρόσθεση δύο αριθμών στην παραμετρική μέθοδο αντικειμένου - add() τύπου επιστρεφόμενου αποτελέσματος (τύπου return) και με κλήση από την main(). class AddObj { int ar1; int ar2; AddObj(int x, int y) { ar1 = x; ar2 = y; public int add(int num1, int num2) { return result; class TestAddObj { int x=5; int y=2; AddObj obj = new AddObj(x, y); //dhmioyrgia antikeimenoy typou AddObj int sum = obj.add(5, 2); //klisi tis methodoy perasma parametron System.out.println("To athroisma tou " + x + " kai " + y + " einai = " + sum); Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 2

Άσκηση 4 η (χρήση αντικειμένου) Πρόσθεση δύο αριθμών στην παραμετρική μέθοδο αντικειμένου - add() τύπου void και με κλήση από την main(). class AddObj { int ar1; int ar2; AddObj(int x, int y) { ar1 = x; ar2 = y; public void add(int num1, int num2) { System.out.println("To athroisma tou " +num1+" kai "+num2+" einai = "+result); class TestAddObj1 { int x=5; int y=2; AddObj obj = new AddObj(x, y); //dhmioyrgia antikeimenoy typou AddObj obj.add(5, 2); //klisi tis methodoy perasma parametron Άσκηση 5 η (Μεικτού τύπου: χρήση αντικειμένου και χρήση static-μεθόδου) Στην άσκηση αυτή θα υπολογίσουμε το άθροισμα δύο αριθμών με την χρήση αντικειμένου αλλά θα υπολογίσουμε και το γινόμενο τους χωρίς την χρήση αντικειμένου (σε μέθοδο τύπου static). Η μέθοδος add() θα είναι τύπου void, και η στατική μέθοδος multiply() θα είναι τύπου return. class AddObj { int ar1; int ar2; AddObj(int x, int y) { ar1 = x; ar2 = y; public void add(int num1, int num2) { System.out.println("To athroisma tou "+num1+" kai "+num2+" einai = "+result); Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 3

class TestAddObj3 { int x=5; int y=2; AddObj obj = new AddObj(x, y); //dhmioyrgia antikeimenoy typou AddObj obj.add(5, 2); //klisi methodou int m = multiply(x, y); System.out.println("To ginomeno tou "+x+ " epi "+y+ " einai = " + m); public static int multiply(int num1, int num2) { int result = num1 * num2; return result; Ασκήσεις με χρήση κλάσεων αντικειμένων και μεθόδων αντικειμένων Άσκηση 6 η Να γίνει το πρόγραμμα που δημιουργεί την κλάση Plintyria που θα έχει τα παρακάτω πεδία: 1) Μάρκα πλυντηρίου, τύπου String, 2) Έτος Αγοράς, τύπου int, 3) Κιλά ρούχων, τύπου int, 4) Στροφές, τύπου int, 5) Διαστάσεις, τύπου String. Το πρόγραμμα θα δημιουργεί αντικείμενο(α) του τύπου Plyntyria και θα εμφανίζει τα στοιχεία τους. Χρησιμοποιήστε τις κατάλληλες get εντολές για την εμφάνιση των στοιχείων και ένα πλήρη δομητή. Μια πιθανή λύση: class Plyntyria { private String marka; private int etos; private int kila; private int strofes; private String diastaseis; Plyntyria (String marka, int etos, int kila, int strofes, String diastaseis){ this.marka=marka; this.etos=etos; this.kila=kila; this.strofes=strofes; this.diastaseis=diastaseis; Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 4

String getmarka(){ return marka; int getetos(){ return etos; int getkila(){ return kila; int getstrofes(){ return strofes; String getdiastaseis(){ return diastaseis; class MachineTest { public static void main(string[] args){ Plyntyria plintirio = new Plyntyria("AEG - v346", 2007, 6, 1200, "85x60x58"); System.out.println("Marka = " + plintirio.getmarka()); System.out.println("Etos Polisevs = " + plintirio.getetos()); System.out.println("kila royxvn = " + plintirio.getkila()); System.out.println("Strofes = " + plintirio.getstrofes()); System.out.println("Diastaseis = " + plintirio.getdiastaseis()); Άσκηση 7 η Να γίνει το πρόγραμμα οδήγησης ενός αυτοκινήτου. Το πρόγραμμα δημιουργεί την κλάση Car που περιέχει δύο πεδία: 1) τα χιλιόμετρα της οδήγησης (double), και 2) η ταχύτητα του αυτοκινήτου, που ξεκινά π.χ. από τα 100 χιλιόμετρα την ώρα. Στην κλάση θα περιέχονται οι παρακάτω μέθοδοι α) η μέθοδος πάτα το γκάζι που ανεβάζει την ταχύτητα κατά 20 χιλμ./ώρα, β) μέγιστη ταχύτητα που επιστρέφει την μέγιστη ταχύτητα της οδήγησης, γ) οδήγηση που υπολογίζει την χιλιομετρική απόσταση που διάνυσε το αυτοκίνητο και δ) εμφάνιση στοιχείων οδήγησης που εμφανίζει την μέγιστη ταχύτητα οδήγησης και την χιλιομετρική απόσταση που διάνυσε το αυτοκίνητο. Το πρόγραμμα δημιουργεί ένα αντικείμενο του τύπου Car (π.χ. Honda) και κάνει μια δοκιμαστική διαδρομή. class Car { public double kilometres; public int speed; Car() { kilometres = 0.0; speed = 100; public void pata_to_gazi() { speed += 20; Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 5

public int maxspeed() { return speed; public void drive(double distance) { kilometres += distance; public void showstoiheia() { System.out.println("Megisti Taxytita = " + speed + " km/h"); System.out.println("Apostasi pou dianise = " + kilometres + " km"); class TestCar { Car Honda = new Car(); //ayxisi tis taxythtas kata 25 km/h. Honda.pata_to_gazi(); //ayxisi tvn hiliometrvn kata 100.0. Honda.drive(100.0); //Sets the local variable max to the value //returned by maxspeed(). int max = Honda.maxSpeed(); //Emfanisi tvn stoiheivn odigisis Honda.showStoiheia(); Παραλλαγές: 1) Εμπλουτισμός με μεθόδους πάτα φρένο, ξεκίνα, σταμάτα, κλπ. Επίσης εμπλουτισμός με περισσότερα πεδία, όπως χρώμα αυτοκινήτου, αριθμός ταχυτήτων, αριθμός θυρών, κλπ. Άσκηση 8 η Παραλλαγή της κλάσης Employee όπου χρησιμοποιούνται αντικείμενα ως πεδία. Αυτή η τακτική εφαρμόζεται και για οποιαδήποτε άλλη κλάση που εμπεριέχει πολλά επιμέρους στοιχεία, όπως εδώ επωνυμία, διεύθυνση, κλπ. Τότε κατασκευάζουμε διαφορετικές κλάσεις για την επωνυμία, την διεύθυνση και ότι άλλο επιμέρους στοιχείο χρειάζεται η αρχική κλάση (εδώ η κλάση Employee). Δηλαδή στην παραλλαγή αυτή θα φτιάξουμε τέσσερεις επιμέρους κλάσεις, τις: Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 6

1) Name: που ορίζει το όνομα του υπάλληλου (αντικείμενο τύπου Ονοματ/μο), 2) Address: που ορίζει την διεύθυνση του υπάλληλου (αντικείμενο τύπου Διεύθυνση), 3) Employee: που ορίζει τα στοιχεία του υπάλληλου, χρησιμοποιώντας όμως σαν μεταβλητές αντικείμενα του των τύπων Name και Address. 4) TestEmployee: η οποία ορίζει αντικείμενα του τύπου Name, Address και Employee και που εμφανίζει όλα τα στοιχεία του Υπάλληλου. Προσοχή στις μεθόδους set και get. class Name { String firstname; String lastname; public Name(String newfirstname, String newlastname) { firstname = newfirstname; lastname = newlastname; public String getfirstname() { return firstname; public String getlastname() { return lastname; public String getfirstlast() { return firstname + " " + lastname; class Address { String street; String city; String state; String zip; public Address(String newstreet, String newcity, String newstate, String newzip) { street = newstreet; city = newcity; state = newstate; zip = newzip; public String getstreet() { return street; public String getcity() { return city; public String getstate() { return state; public String getzip() { return zip; Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 7

public String getfulladdress() { return street + "\n" + city + ", " + state + ", " + zip; class Employee { //fields private Name myname; private Address myaddress; private String AFM; //antikeimeno typou Name //antikeimeno typou Address //constructor public Employee(Name n, Address a, String newafm) { myname = n; myaddress = a; AFM = newafm; public Name getname() { return myname; public Address getaddress() { return myaddress; public String getafm() { return AFM; class TestEmployee { Name eponymia = new Name("Nikos", "Nikas"); Address dieythinsi = new Address("Tsimiski 35", "Thessaloniki", "Greece", "56 700"); String AFM = "123456789"; Employee theemployee = new Employee(eponymia, dieythinsi, AFM); System.out.println(theEmployee.getName().getFirstLast() + "\n" + theemployee.getaddress().getfulladdress() + "\n" + theemployee.getafm()); Άλυτη άσκηση Να γίνει το πρόγραμμα που δημιουργεί την κλάση Robots. Η κλάση εκτός από τα αναγκαία πεδία όπως όνομα, μοντέλο, χρονιά κατασκευής, ταχύτητα το λεπτό, κλπ. Θα περιέχει και τις μεθόδους που εκκινούν και σταματούν το ρομπότ on-off (εμφάνιση απλών μηνυμάτων), αλλά και μεθόδους που το κινούν. Το πρόγραμμα για κάθε αντικείμενο του τύπου ρομπότ θα εμφανίζει όλα τα στοιχεία της διαδρομής που θα διανύσει. Σφέτσος Παναγιώτης, Αλγοριθμική και Προγραμματισμός, 8