Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... ·...

49
Κάντε κλικ για να ξεκινήσετε Αντικειμενοστραφής Προγραμματισμός Ενότητα 2: Τύποι δεδομένων, μεταβλητές, τελεστές και παραστάσεις. Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

Transcript of Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... ·...

Page 1: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Κάντε κλικ για να ξεκινήσετε

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

Ενότητα 2: Τύποι δεδομένων,

μεταβλητές, τελεστές και παραστάσεις.

Δρ. Χαράλαμπος Ζ. Πατρικάκης

Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ

Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

Page 2: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Άδειες Χρήσης

• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

2

Page 3: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Χρηματοδότηση

• Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.

• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

3

Page 4: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Ευχαριστίες

• Στην ανάπτυξη του υλικού βοήθησαν οι φοιτητές Λάζαρος Τουμανίδης, Λίλιαν Γούσιου και ο βοηθός εργαστηρίου Κόγιας Δημήτριος.

4

Page 5: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Βιβλιογραφία

• Harvey Deitel,Paul Deitel , «Java Προγραμματισμός, 8η έκδοση», Γκιούρδας, 2010.

• Γιώργος Λιακέας, «Εισαγωγή στη Java», Κλειδάριθμος, 2009. • Χρήστος Κυτάγιας, Κώστας Δ. Κυτάγιας, Γιώργος Πρεζεράκος,

Δημήτρης Κυτάγιας, «Αντικειμενοστραφής Προγραμματισμός με Java», Σύγχρονη Εκδοτική, 2013.

• Wanda Dann, Stephen Cooper, and Randy Pausch, «Learning to program with Alice» 3rd edition, Pearson Education, 2012.

• Michael Kölling, «Introduction to Programming with Greenfoot». • «Object-Oriented Programming in Java with Games and

Simulations», Pearson Education, August 2009. • Οι σημειώσεις είναι βασισμένες και σε υλικό του καθηγητή του ΤΕΙ

Πειραιά Γ. Πρεζεράκου.

5

Page 6: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Περιεχόμενα

6

2.1 Τύποι δεδομένων, μεταβλητές και τελεστές

2.2 Περισσότεροι τύποι δεδομένων

2.3 Μέθοδοι

Page 7: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Προσδοκώμενα Αποτελέσματα

7

Στην ενότητα αυτή θα μάθετε για: Τους βασικούς τύπους δεδομένων των μεταβλητών, Τελεστές, χαρακτήρες και αλφαριθμητικά (String), Τη σειρά εκτέλεσης των πράξεων και μετατροπές

τύπων δεδομένων Δημιουργία μεθόδων και τις παραμέτρους τους.

Page 8: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

8

2.1 Τύποι δεδομένων, μεταβλητές και τελεστές

Page 9: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Τύποι Δεδομένων

9

• Τα είδη των τιμών που μπορούμε να αποθηκεύουμε σε μεταβλητές και να τις χειριζόμαστε.

Τύπος τιμών Μήκος σε

bytes Πεδίο τιμών

Αρχική τιμή

byte

Ακέραιος

1 -128 . . . 127 0

short 2 -32768 . . . 32767 0

int 4 -231 . . . 231-1 / 0 . . . 232-1 (Java SE8) 0

long 8 -263 . . . 263-1 / 0 . . . 264-1 (Java SE8) 0

float

Κινητής υποδιαστολής

4 single-precision 32-bit IEEE 754 floating point 0

double 8 double-precision 32-bit IEEE 754 floating point 0

char Χαρακτήρας 2 \u0000' (0) . . . '\uffff' (65.535) 0

boolean Λογική τιμή ? false - true false

Page 10: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Μεταβλητές

• Τοποθεσίες στη μνήμη του υπολογιστή, τις οποίες έχουμε ονομάσει και στις οποίες αποθηκεύεται μία τιμή.

Παράδειγμα: String a = "a"; String b = "letter b"; int k = 15; a = "letter a"; String c = a + "and" + b;

10

Page 11: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Μεταβλητές και Σταθερές

• Μία μεταβλητή – Μπορεί να παίρνει

διαφορετικές τιμές κατά τη διάρκεια του προγράμματος.

– Μπορεί να δηλωθεί σε κάποιο σημείο και να πάρει (και να ξαναπάρει) τιμή αλλού.

int numberOfHoursInADay= 67; numberOfHoursInADay= 24;

• Μία σταθερά

– Παίρνει μία τιμή (μπορεί και μετά τη δήλωσή της ).

– Δηλώνεται σε ένα σημείο του κώδικα και δεν μπορεί να ξαναδηλωθεί.

– Η σύμβαση λέει ότι πρέπει να χρησιμοποιούνται κεφαλαία γράμματα και το σύμβολο _ για την ονομασία της.

final int NUMBER_OF_HOURS_IN_A_DAY = 24;

11

Page 12: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Τελεστές

• Σύμβολα που υλοποιούν απλούς υπολογισμούς και πράξεις.

12

Ανάθεση: = Πρόσθεση: + Αφαίρεση: - Πολ/μός: * Διαίρεση: /

Page 13: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Χαρακτήρες

• Δηλώνονται με το char. • Μπορούν να περιλαμβάνουν οποιοδήποτε χαρακτήρα

(γράμμα, ψηφίο, σημείο στίξης κ.λ.π). • Οι ειδικοί χαρακτήρες χρησιμοποιούν τις ακολουθίες

διαφυγής (escape sequences) στην αναπαράστασή τους. – \b backspace – \t tab – \n line feed – \f form feed – \r carriage return – \" διπλά εισαγωγικά – \’ απλό εισαγωγικό – \\ backslash

13

Page 14: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Αλφαριθμητικά (String)

• Υπάρχουν διάφορες κλάσεις για αποθήκευση και διαχείριση αλφαριθμητικών. Οι πιο σημαντικές είναι οι String και StringBuffer.

• Ένα String περικλείεται μέσα σε διπλά εισαγωγικά: "Hello". • Μπορούμε να συνδέσουμε δύο Strings με χρήση του συμβόλου +:

String1+String2. • Μπορούμε να αναθέσουμε μία νέα τιμή σε ένα String αλλά όχι να το

τροποποιήσουμε. • Μέθοδοι (χαρακτηριστικές) του αντικειμένου String.

14

Μέθοδος Λειτουργία

charAt(int index) Επιστρέφει το χαρακτήρα στη θέση index

compareTo(String anotherString) Συγκρίνει δύο strings

contains(CharSequence s) Επιστρέφει true μόνο εάν το string περιέχει τη σειρά χαρακτήρων s

indexOf(int ch) Επιστρέφει τη θέση στην οποία θα συναντήσει για πρώτη φορά το

χαρακτήρα ch στο string

isEmpty() Επιστρέφει true, εάν το string είναι κενό (δηλαδή έχει μηδενικό μήκος)

Length() Επιστρέφει το μήκος ενός string

replace(char oldChar, char newChar) Αντικαθιστά όλες τις εμφανίζεις του oldChar με newChar.

toLowerCase() / toUpperCase() Μετατρέπει όλους τους χαρακτήρες στο string σε lowercase/uppercase

Page 15: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

StringBuffer

• Για να έχουμε τη δυνατότητα να τροποποιήσουμε ένα αλφαριθμητικό, χρησιμοποιούμε την κλάση StringBuffer.

• Τα αντικείμενα τύπου StringBuffer μπορούν να περιέχουν αχρησιμοποίητο χώρο για χαρακτήρες (ενώ τα τύπου String δεν μπορούν). – StringBuffer sb = newStringBuffer(10) κρατάει χώρο για 10

χαρακτήρες στο αντικείμενο sb.

• Οι μέθοδοι length() και capacity() μας δείχνουν το μήκος και τη χωρητικότητα ενός αντικειμένου τύπου StringBuffer.

• Μπορούμε να μετατρέψουμε ένα αντικείμενο StringBuffer σε String, με χρήση της μεθόδου toString().

• Η Stringbuffer παρέχει και τη δυνατότητα αντιστροφής χαρακτήρων με τη μέθοδο reverse().

15

Page 16: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Μαθηματικές συναρτήσεις

• Περιλαμβάνονται στην κλάση Math.

• Ορισμένες μέθοδοι.

16

Μέθοδος Λειτουργία

abs(όρισμα) Επιστρέφει την απόλυτη τιμή του ορίσματος

ceil(όρισμα) Επιστρέφει την τιμή του μικρότερου ακέραιου που

είναι μεγαλύτερος ή ίσος με το όρισμα

cos(όρισμα) Επιστρέφει το (τύπου double)συνημίτονο του (τύπου

double) ορίσματος

exp(όρισμα) Επιστρέφει το (τύπου double) eορίσματος

log(όρισμα) Επιστρέφει τον (τύπου double) φυσικό λογάριθμο του

ορίσματος

round(όρισμα) Επιστρέφει τον πλησιέστερο προς το όρισμα ακέραιο

random() Επιστρέφει έναν τυχαίο αριθμό ανάμεσα σε 0 και 1

min(όρισμα1,όρισμα2) Επιστρέφει το μικρότερο των δύο ορισμάτων

Page 17: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

• class GravityCalculator { public static void main(String[]args){ double gravity = -9.81; double initialVelocity = 0.0; double fallingTime = 10.0; double initialPosition = 0.0; double finalPosition = .5 * gravity * fallingTime * fallingTime; finalPosition = finalPosition + initialVelocity * fallingTime; finalPosition = finalPosition + initialPosition; System.out.println("I thesi enos antikeimenou meta apo " + fallingTime + " sec einai " + finalPosition + " m."); } }

17

Page 18: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

• finalPosition = finalPosition + initialVelocity * fallingTime; finalPosition = finalPosition + initialPosition;

Ή finalPosition += initialVelocity * fallingTime; finalPosition += initialPosition;

18

Page 19: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

20

2.2 Περισσότεροι τύποι δεδομένων

Page 20: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Διαίρεση

• Η διαίρεση ("/") λειτουργεί διαφορετικά στους ακέραιους και στους πραγματικούς.

21

• Παράδειγμα:

double a= 5.0/2.0; // a = 2.5

int b = 4/2; // b = 2

int c = 5/2; // c = 2

double d = 5/2; // d = 2.0

• Δίνεται προτεραιότητα, όπως και στα μαθηματικά, στην εκτέλεση των πράξεων από τα αριστερά προς τα δεξιά.

Page 21: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

• Εκτιμάμε το δεξί μέρος του τελεστή ανάθεσης ("=") πρώτα.

• Οι παρενθέσεις έχουν τη μεγαλύτερη προτεραιότητα.

double x = 3 / 2 + 1; // x = 2.0

double y = 3 / (2+1); // y = 1.0

Σειρά Εκτέλεσης των Πράξεων

22

Page 22: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

• H Java επαληθεύει ότι δεν ταιριάζουν όλοι οι τύποι

δεδομένων:

String five = 5; // ΛΑΘΟΣ! Αναμονή για συμβολοσειρά και όχι νούμερο

• Εμφανίζεται το εξής μήνυμα λάθους: test.java.2: incompatible types found: int required: java.lang.String String five = 5;

"Αταίριαστοι" Τύποι Δεδομένων

23

Page 23: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

• Μπορεί να εφαρμοστεί σε μεταβλητές και κλάσεις • Τοποθετούμε τον επιθυμητό τύπο μεταβλητής σε

παρένθεση και στη συνέχεια το όνομα της μεταβλητής στην οποία θέλουμε να κάνουμε τη μετατροπή:

(επιθυμητός τύπος) όνομα μεταβλητής

Μετατροπές Τύπου Δεδομένων (Casting)

24

Page 24: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

int a = 2; // a = 2

double a = 2; // a = 2.0 (Έμμεση Μετατροπή)

int a = 18.7; // ΛΑΘΟΣ!

int a = (int) 18.7; // a = 18

int a = 2; // a = 2

double a = (double) 2/3; // a = 0.6666…

Μετατροπές Τύπου Δεδομένων (Casting)

25

Page 25: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Ιεραρχία τύπων δεδομένων και implicit typecast

• Οι τύποι δεδομένων στη Java είναι ιεραρχημένοι. • Το νόημα είναι να μπορεί ένας αριθμός που ανήκει σε τύπο πιο

ψηλά στην ιεραρχία, να συγκρατήσει την ακρίβεια του χαμηλότερου στη μετατροπή (άρα όσο πιο ψηλά, τόσο μεγαλύτερη ακρίβεια ενός τύπου)

• Η ιεραρχία είναι: 1. double 2. float 3. long 4. int 5. short 6. Byte

• Implicit typecast: Αναβαθμίζει τον τύπο, σύμφωνα με την ιεραρχία

26

Page 26: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Explicit typecast

• Κατά την ανάθεση, χρησιμοποιούμε το (new type) πριν τα δεδομένα τα οποία ήταν στον παλιό τύπο.

• Εδώ μπορούμε να κατέβουμε την ιεραρχία, αλλά θα χάσουμε σε ακρίβεια.

• Παράδειγμα – int x = (int)3.7;

Εδώ το x θα πάρει την τιμή 3

– byte bt = (byte) 200;

Εδώ το bt θα πάρει την τιμή -56 (αναδίπλωση)

(μπορείτε να εξηγήσετε γιατί;)

27

Page 27: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

Ποιά από τα παρακάτω επιτρέπονται;

• int x = 3.5;

Δεν επιτρέπεται γιατί το 3.5 δεν χωράει στο int

• float x = 3;

Επιτρέπεται γιατί το 3 είναι τύπου int που που χωράει στο float

• long i = 3;

Επιτρέπεται γιατί το 3 είναι τύπου int που που χωράει στο long

• byte x = 155;

Δεν επιτρέπεται γιατί το 155 είναι πολύ μεγάλο για να χωρέσει ένα byte (<=127)

• double d = 3.14159F;

Επιτρέπεται γιατί to 3.14159F είναι τύπου float, που χωράει στο double

28

Page 28: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

30

2.3 Μέθοδοι

Page 29: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Public static void main (String[] arguments)

{

System.out.println("hi");

}

Μέθοδοι

31

Page 30: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Δημιουργώντας Μεθόδους

public static void NAME() {

ΕΝΤΟΛΕΣ

}

• Η μέθοδος έχει τη μορφή:

ΝΑΜΕ( ) ;

32

Page 31: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

33

class NewLine { public static void newLine() { System.out.println(""); } public static void threeLines() { newLine(); newLine(); newLine(); } public static void main(String[] arguments) { System.out.println("Line 1"); threeLines(); System.out.println("Line 2"); } }

Page 32: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

34

class NewLine { public static void newLine() { System.out.println(""); } public static void threeLines() { newLine(); newLine(); newLine(); } public static void main(String[] arguments) { System.out.println("Line 1"); threeLines(); System.out.println("Line 2"); } }

Page 33: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

35

class NewLine { public static void newLine() { System.out.println(""); } public static void threeLines() { newLine(); newLine(); newLine(); } public static void main(String[] arguments) { System.out.println("Line 1"); threeLines(); System.out.println("Line 2"); } }

Page 34: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράμετροι

public static void NAME(TYPE NAME) {

ΕΝΤΟΛΕΣ

}

Η μέθοδος έχει τη μορφή:

NAME (EXPRESSION);

36

Page 35: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

37

class Square { public static void printSquare(int x) { System.out.println(x*x); } public static void main(String[] arguments) { int value = 2; printSquare(value); printSquare(3); printSquare(value*2); } }

Σωστό Πρόγραμμα!

Page 36: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

38

class Square2 { public static void printSquare(int x) { System.out.println(x*x); } public static void main(String[] arguments) { printSquare("hello"); printSquare(5.5); } }

Πού βρίσκεται το λάθος στην κλάση Square 2;

Page 37: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

class Square3 { public static void printSquare(double x) { System.out.println(x*x); } public static void main(String[] arguments) { printSquare(5); } }

Πού βρίσκεται το λάθος στην κλάση Square 3;

39

Page 38: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Πολλαπλοί Παράμετροι

[…]NAME(TYPE NAME, TYPE NAME){

ΕΝΤΟΛΕΣ

}

Η μέθοδος έχει τη μορφή:

ΝΑΜΕ (arg1, arg2);

40

Page 39: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

class Multiply {

public static void times (double a, double b) {

System.out.println(a*b);

}

public static void main(String[] arguments) {

times(2.0,2.0); //Σωστό

times(3,4); // Λάθος

}

}

41

Page 40: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Τιμές που Επιστρέφονται

Public static TYPE NAME() {

ΕΝΤΟΛΕΣ

return ΕΚΦΡΑΣΗ;

}

• Το "void" σημαίνει ότι η συνάρτηση δεν επιστρέφει κάποιον τύπο δεδομένων.

42

Page 41: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

class Square3 {

public static void printSquare(double x) {

System.out.println(x*x);

}

public static void main(String[] arguments) {

printSquare(5);

}

}

43

Page 42: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

class Square4 {

public static double square(double x) {

return x*x;

}

public static void main(String[] arguments) {

System.out.println(square(5));

System.out.println(square(2))

}

} 44

Page 43: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Πεδίο Εμβέλειας Μεταβλητών

• Το πεδίο ορατότητας (ή ισχύος) μιας μεταβλητής είναι το block "{ }", στο οποίο ορίζονται (πεδίο εμβέλειας).

• Οι παράμετροι σε μια μέθοδο είναι οι μεταβλητές που ορίζονται μέσα στη μέθοδο.

45

Page 44: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

class SquareChange { public static void printSquare(int x){ System.out.println("printSquare x =" + x); //printSquare x= 5

x = x*x; System.out.println("printSquare x =" + x); //printSquare x= 25 } public static void main(String [] arguments) { int x = 5; System.out.println("main x =" + x); //main x= 5 printSquare(x); System.out.println("main x =" + x); //main x= 5 } }

46

Page 45: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Παράδειγμα

class Scope {

public static void main(String[] arguments) {

int x = 5;

if (x == 5) {

int x = 6;

int y = 72;

System.out.println("x = " + x + " y = " + y );

}

System.out.println("x = " + x + " y = " + y);

}

}

47

Page 46: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Μέθοδοι: Φτιάχνοντας Blocks

• Τα μεγάλα προγράμματα φτιάχνονται από πολλές μικρές μεθόδους.

• Οι μέθοδοι μπορούν να αναπτυχθούν, να δοκιμαστούν και να επαναχρησιμοποιηθούν μεμονομένα.

• Η χρήση μιας μεθόδου δεν προαπαιτεί να γνώριζει κανείς τον τρόπο που αυτή λειτουργεί.

• Στη γλώσσα των υπολογιστών αυτό ονομάζεται «αφαίρεση».

48

Page 47: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Μαθηματικές Συναρτήσεις

• Math.sin(x)

• Math.cos(Math.PI/2)

• Math.pow(2, 3)

• Math.log(Math.log(x + y))

49

Page 48: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

Σε αυτή την ενότητα μιλήσαμε για:

51

2.1 Τύποι δεδομένων, μεταβλητές και τελεστές

2.2 Περισσότεροι τύποι δεδομένων

2.3 Μέθοδοι

Page 49: Παρουσίαση του PowerPointeclass.teipir.gr/openeclass/modules/document/file... · program with Alice» 3rd edition, Pearson Education, 2012. • Michael Kölling, «Introduction

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

Ενότητα 2: Τύποι δεδομένων,

μεταβλητές, τελεστές και παραστάσεις.

Δρ. Χαράλαμπος Ζ. Πατρικάκης

Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ

Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα