Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 6: Pass-by-value και φαινομενικό pass-by-reference

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

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

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

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

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

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

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

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

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

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

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

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

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

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

Mεταβλητές (variables) και Σταθερές (constants)

Wrapper Classes, Abstract Classes and Interfaces

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

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

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

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

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

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

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

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

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

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

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

API: Applications Programming Interface

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

Βασικά Στοιχεία της Java

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

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

Βασικά Στοιχεία της Java

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

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

Week. 6: Java Collections

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

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

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

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

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

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

Θέµατα εξετάσεων µε απαντήσεις

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

4 Συλλογές Αντικειμένων

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

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

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 11: Vectors (διανύσματα)

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

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

ΕΠΛ131 Αρχές Προγραμματισμού

Δομές ελέγχου ροής προγράμματος

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

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

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

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

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

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

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

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

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

Ask1, Ask2, Ask3. private void jbutton1actionperformed(java.awt.event.actionevent evt) { jlabel1.settext( "You pressed the 1st button" ); }

Εισαγωγή στη γλώσσα προγραμματισμού C++

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

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

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

Transcript:

Τιµές βασικών τύπων και αναφορές εδοµένα βασικών τύπων αποθηκεύονται κατ αξία ενώ τα αντικείµενα αποθηκεύονται κατ αναφορά: Εβδοµάδα 7: Συµβολοσειρές age = ; father = new (); name = ; Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Η εντολή καταχώρησης (για 3 η φορά) Ψευδωνυµία (Aliasing) Η καταχώρηση γίνεται κατ αξία για τους βασικούς τύπους δεδοµένων και κατ αναφορά για τύπους αντικειµένων p1 = new ("Jack"); p2; age = ; myage = age; age myage p2 = p1; p2.changename("jill"); p1.printname(); p1 = new (); p2 = p1; p1 Τι θα τυπωθεί; p2 Εισαγωγή στον Προγραµµατισµό,,, Slide 3 Εισαγωγή στον Προγραµµατισµό,,, Slide 4 Ψευδωνυµία Βασικοί τύποι p1 = new ("Jack"); p2; p2 = p1; p2.changename("jill"); p1.printname(); p1 "Jack" "Jill" int i1 = ; int i2; i2 = i1; i2++; System.out.println(i1); p2 Jill Τι θα τυπωθεί; Εισαγωγή στον Προγραµµατισµό,,, Slide 5 Εισαγωγή στον Προγραµµατισµό,,, Slide 6

Βασικοί τύποι Ψευδωνυµία µέσω παραµέτρων int i1 = ; int i2; i2 = i1; i2++; System.out.println(i1); i1 i2 43 Board board = new Board("Blocks"); GameEngine engine = new GameEngine(board); System.out.println(board.getTitle()); public GameEngine(Board theboard) board = theboard; theboard.settitle("my Game"); Τι θα τυπωθεί; Εισαγωγή στον Προγραµµατισµό,,, Slide 7 Εισαγωγή στον Προγραµµατισµό,,, Slide 8 Ψευδωνυµία µέσω παραµέτρων class Game Board board = new Board("Blocks"); GameEngine engine = new GameEngine(board); System.out.println(board.getTitle()); Τι ισχύει για αντικείµενα τύπου ; public GameEngine(Board theboard) gameboard = theboard; theboard.settitle("my Game"); class GameEngine My Game board [Board] "My "Blocks" Game" [GameEngine] method: GameEngine: theboard engine gameboard Εισαγωγή στον Προγραµµατισµό,,, Slide 9 Εισαγωγή στον Προγραµµατισµό,,, Slide 10 Τα s δεν µπορεί να µεταλλαχθούν Βασικές µέθοδοι Οι πιο συχνά χρησιµοποιούµενες µέθοδοι είναι: Τα s δεν µπορεί να µεταλλαχθούν [immutable] Τα αντικείµενα που δεν µπορεί να µεταλλαχθούν έχουν σταθερή κατάσταση; Η κατάστασή τους δεν µπορεί να µεταβληθεί. public int length(); public char charat(int index); public indexof(char ch); public indexof(char ch, int start); public lastindexof(char ch); public lastindexof(char ch, int start); Εισαγωγή στον Προγραµµατισµό,,, Slide 11 Εισαγωγή στον Προγραµµατισµό,,, Slide 12

Μεταβολή αντικειµένων τύπου Μεταβολή αντικειµένων τύπου s1, s2; s1 = ; s2 = s1; s2.touppercase(); System.out.println(s1); s1 s2 s1, s2; s1 = ; ΛΑΘΟΣ! s2 = s1; s2.touppercase(); System.out.println(s1); s1 s2 ή Fred FRED? ή Fred FRED? Εισαγωγή στον Προγραµµατισµό,,, Slide 13 Εισαγωγή στον Προγραµµατισµό,,, Slide 14 Μεταβολή αντικειµένων τύπου «Τροποποίηση» των s s1, s2; s1 = ; s2 = s1; s2 = s2.touppercase(); System.out.println(s1); Τα αντικείµενα τύπου δεν µπορεί να µεταβληθούν. Όλες οι «τροποποιήσεις» επιστρέφουν ένα νέο αντικείµενο τύπου. "FRED" Αντικείµενα τύπου δεν µπορεί ποτέ να τροποποιηθούν. Για µεγαλύτερη ακρίβεια, θα έπρεπε να αναφερόµαστε στη «δηµιουργία συναφών s». s1 s2 Εισαγωγή στον Προγραµµατισµό,,, Slide 15 Εισαγωγή στον Προγραµµατισµό,,, Slide 16 ηµιουργία συναφών s Ταύτιση σε αντιπαράθεση µε ισότητα Για αντικείµενα τύπου διαφορετικού από : replace(char oldchar, char newchar); tolowercase(); touppercase(); trim(); Fred Jill person1 person2 person1 == person2? Εισαγωγή στον Προγραµµατισµό,,, Slide 17 Εισαγωγή στον Προγραµµατισµό,,, Slide 18

Ταύτιση σε αντιπαράθεση µε ισότητα Για αντικείµενα τύπου διαφορετικού από : Ταύτιση σε αντιπαράθεση µε ισότητα Για αντικείµενα τύπου διαφορετικού από : person1 person2 person1 person2 person1 == person2? person1 == person2? Εισαγωγή στον Προγραµµατισµό,,, Slide 19 Εισαγωγή στον Προγραµµατισµό,,, Slide 20 Ταύτιση σε αντιπαράθεση µε ισότητα για s Ταύτιση σε αντιπαράθεση µε ισότητα για s command = ; if(command == ) == ελέγχει την ταύτιση command = ; if(command.equals()) equals ελέγχει για ισότητα ==? equals? command false command true Εισαγωγή στον Προγραµµατισµό,,, Slide 21 Εισαγωγή στον Προγραµµατισµό,,, Slide 22 Μετατροπή από/σε Μέθοδοι µετατροπής από/σε Συχνά είναι αναγκαία η µετατροπή ενός αντικειµένου τύπου σε αντικείµενα άλλων τύπων (Integer, Boolean, ), και αντίστροφα. Ο τύπος-αποτέλεσµα της µετατροπής περιέχει την µέθοδο που θα κληθεί για να πραγµατοποιήσει την µετατροπή. (Παράδειγµα: µετατροπή από σε Integer µια µέθοδο στην κλάση Integer.) Μετατροπή από boolean int long float double Μετατροπή σε boolean int long float double σε.valueof(boolean).valueof(int).valueof(long).valueof(float).valueof(double) από new Boolean().booleanValue() Integer.parseInt(, int base) Long.ParseLong(, int base) new Float().floatValue() new Double().doubleValue() Εισαγωγή στον Προγραµµατισµό,,, Slide 23 Εισαγωγή στον Προγραµµατισµό,,, Slide 24

Το πρόβληµα της συνεχούς µετατροπής Η κλάση Buffer name = title + " " + firstname + " " + lastname; "Mr" "Mr " "Simpson" Η δηµιουργία πολλών ενδιάµεσων αντικειµένων είναι αντιπαραγωγική "Mr Fred" "Mr Fred " "Mr Fred Simpson" Ο µεταφραστής χρησιµοποιεί ένα αντικείµενο τύπου Buffer για να λύσει το πρόβληµα. name = new Buffer().append(title).append(" ").append(firstname).append(" ").append(lastname); Έναν αντικείµενο τύπου Buffer αποθηκεύει ένα τροποποιήσιµο διάνυσµα από χαρακτήρες. Εισαγωγή στον Προγραµµατισµό,,, Slide 25 Εισαγωγή στον Προγραµµατισµό,,, Slide 26 Η κλάση Buffer Η κλάση Buffer Τροποποίηση του χώρου αποθήκευσης [buffer]: public void setcharat(int index, char newchar) αλλάζει το χαρακτήρα στη θέση index Buffer append( s) Buffer append(char ch) Buffer append(int i) Buffer append(boolean b) (διαθέσιµη για όλους τους βασικούς τυπους) public change( s) Buffer buffer = new Buffer(s); // modify Buffer return buffer.to(); Αντικείµενα τύπου µπορεί εύκολα να µετατραπούν σε αντικείµενα τύπου Buffers, και αντίστροφα. Εισαγωγή στον Προγραµµατισµό,,, Slide 27 Εισαγωγή στον Προγραµµατισµό,,, Slide 28 Η χωριτικότητα του Buffer s και διανύσµατα από char Ενας Buffer είναι ένα µεταβλητού µεγέθους διάνυσµα από char. Παρόµοια αντιµετώπιση θεµάτων χωρητικότητας µε τα διανύσµατα µεταβλητού µεγέθους. public Buffer(int capacity); ηµιουργεί µια αποθήκη µε αρχική χωρητικότητα capacity. Ένα αναπαρίσταται µε ένα διανυσµα από chars Ένα µπορεί να µετατραπεί από/σε διάνυσµα από chars public void ensurecapacity(int minimum); Επιβεβαιώνεται ότι η χωρητικότητα της αποθήκης είναι τουλάχιστον minimum. public int capacity(); Επιστρέφει τη χωρητικότητα της αποθήκης. Εισαγωγή στον Προγραµµατισµό,,, Slide 29 Εισαγωγή στον Προγραµµατισµό,,, Slide 30

Παραδειγµα: διανυσµα από chars public static squeezeout( from, char toss) char[] chars = from.tochararray(); int len = chars.length(); for (int i = 0; i < len; i++) if (chars[i] == toss) len--; System.arraycopy(chars, i+1, chars, i, len-i); i--; // reexamine this spot return new (chars, 0, len); Εισαγωγή στον Προγραµµατισµό,,, Slide 31