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

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

ΒΙΒΛΙΟΘΗΚΕΣ ΚΑΙ ΠΕΛΑΤΕΣ Ι-1

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. Εκφράσεις και έλεγχος ροής

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

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

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

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής

ΕΠΛ 012. JavaScripts

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

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

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

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Ευφυείς Τεχνολογίες ----Πράκτορες

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

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

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

Ανάπτυξη και Σχεδίαση Λογισμικού

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

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

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

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

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

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

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

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

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Ηλεκτρονικοί Υπολογιστές

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

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

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

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

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

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

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

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

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

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

Κεφάλαιο 15 Γλώσσα προγραμματισμού Java

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Transcript:

Εκµάθηση αντικειµενοστραφή προγρ/σµού Η εκµάθηση µίας γλώσσας προγραµµατισµού µπορεί να χωρισθεί σε δύο µέρη Εβδοµάδα 6: Η βιβλιοθήκη κλάσεων της Java Εκµάθηση της γλώσσας Σύνταξη, εντολές επιλογής, βρόγχοι, Εκµάθηση των βιβλιοθηκών (API) Συχνά χρησιµοποιούµενες δοµές δεδοµένων ιαπροσωπείες ανθρώπου-µηχανής (GUI), είσοδος/έξοδος, αποθήκευση δεδοµένων, δικτύωση, Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Εκµάθηση της γλώσσας Εκµάθηση των βιβλιοθηκών (API) abstract boolean break byte case catch char class const* continue default do double else extends final finally float for goto* if implements instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient try void volatile while API = Application Programming Interface Η διαπροσωπεία (συµβάσεις κλήσεως) [interface (calling conventions)] µέσω της οποίας ένας προγραµµατιστής εφαρµογών προσπελαύνει την βιβλιοθήκη κλάσεων της Java Java 2 Platform, Standard Edition, v 1.3. 1,840 κλάσεις και διαπροσωπείες [Interfaces] Κατανεµηµένες σε 75 πακέτα [packages] http://java.sun.com/j2se/1.3/docs/api/index.html Σηµείωση: λέξεις κλειδιά σηµειωµένες µε * δεν χρησιµοποιούνται Εισαγωγή στον Προγραµµατισµό,,, Slide 3 Εισαγωγή στον Προγραµµατισµό,,, Slide 4 Βιβλιοθήκη κλάσεων Java Η Java 2 Platform, Standard Edition, παρέχει µια µεγάλη συλλογή από κλάσεις που υποστηρίζουν και απλουστεύουν πολλές συνήθεις προγραµµατιστικές δραστηριότητες GUIs, TCP/IP sockets, CORBA, συµπίεση (ZIP), 2D Graphics, κρυπτογράφηση Οι «θεµελιώδεις κλάσεις Java» [Java Foundation Classes] είναι µέρος της «Java 2 standard language» (περιλαµβάνουν το πακέτο Swing) Συχνά χρησιµοποιούµενα πακέτα java.lang (περίπου 79 κλάσεις) Παρέχει κλάσεις που θεωρούνται θεµελιώδεις για το σχεδιασµό της γλώσσας προγραµµατισµού Java (περιλαµβάνει την κλάση Math) java.math (2 κλάσεις) Παρέχει κλάσεις για την εκτέλεση αριθµητικών πράξεων µεγάλης ακρίβειας µε ακέραιους (BigInteger) και πραγµατικούς (BigDecimal) αριθµούς. Εισαγωγή στον Προγραµµατισµό,,, Slide 5 Εισαγωγή στον Προγραµµατισµό,,, Slide 6

Το µέγεθος των πακέτων Με µια πρώτη µατιά ο µεγάλος αριθµός των κλάσεων καθιστά αδύνατη την εκµάθηση τους. Στις περισσότερες περιπτώσεις ο προγραµµατιστής χρειάζεται να γνωρίζει µόνο ένα υποσύνολο των κλάσεων. Το υποσύνολο των κλάσεων που πρέπει να γνωρίζει ενας προγραµµατιστής εξαρτάται από τις εφαρµογές που αναπτύσσει. Σηµαντική είναι η ικανότητα εντοπισµού των αναγκαίων για τη σωστή ανάπτυξη προγραµµάτων κλάσεων στις βιβλιοθήκες. Σύγκριση Το λεξικό «Macquarie» Περισσότεροι από 100,000 όροι Συχνότητα χρήσης λέξεων Οι 25 συχνότερα χρησιµοποιούµενες λέξεις αποτελούν περίπου το 1/3 του έντυπου υλικού (στην Αγγλική) Οι 100 συχνότερα χρησιµοποιούµενες λέξεις αποτελούν περίπου το 1/2 του έντυπου υλικού Οι 300 συχνότερα χρησιµοποιούµενες λέξεις αποτελούν περίπου το 65% του έντυπου υλικού www.duboislc.org/educationwatch/first100words.html Εισαγωγή στον Προγραµµατισµό,,, Slide 7 Εισαγωγή στον Προγραµµατισµό,,, Slide 8 Στοιχεία πρώτου βαθµού Υπάρχουν τρία στοιχεία πρώτου βαθµού που µπορεί να αποτελούν µέρη ενός αρχείου πηγαίου κώδικα Κανένα από αυτά δεν είναι αναγκαίο Εάν ένα η περισσότερα είναι παρόντα πρέπει να εµφανίζονται µε την παρακάτω σειρά: package declaration statements class definition Παράδειγµα Java package mypack; // This class will belong to mypack javax.swing.*; public class SimpleGUIExample public static void main(string s[]) // we do lots of windows stuff here ;-) Εισαγωγή στον Προγραµµατισµό,,, Slide 9 Εισαγωγή στον Προγραµµατισµό,,, Slide 10 Πακέτα (Packages) Στην Java µπορούµε να δηµιουργήσουµε τα δικά µας πακέτα Τα πακέτα δηµιουργούν µια οµαδοποίηση συναφών κλάσεων και διαπροσωπειών [interfaces] Ονόµατα όπως List και Account µπορεί να χρησιµοποιηθούν στα πλαίσια ενός πακέτου χωρίς συγχέεται η λειτουργία τους µε οµώνυµα άλλων πακέτων. Οι εντολές Import εισάγουν ένα ολόκληρο πακέτο η µια συγκεκριµένη κλάση κλάση java.awt.button; ολόκληρο πακέτο java.util.*; Τα πακέτα µπορεί να περιέχουν κλάσεις που είναι προσπελάσιµες µόνο από άλλες κλάσεις του ίδιου πακέτου Εισαγωγή στον Προγραµµατισµό,,, Slide 11 Εισαγωγή στον Προγραµµατισµό,,, Slide 12

Εάν κλάση µε το ίδιο όνοµα υπάρχει σε δυο διαφορετικά πακέτα, τότε αναφορές στην κλάση αυτή πρέπει να περιέχουν και το όνοµα του πακέτου GP.Point point = new GP.Point(area, 20, 20); java.awt.point point = new awt.point (30, 3); Συχνά χρησιµοποιούµενες κλάσεις String Math Κλάσεις συσκευαστές [Wrapper classes] System Εάν δεν προσδιοριστεί το πακέτο ο µεταφραστής της java θα παράγει το διαγνωστικό µήνυµα: Ambiguous class: GP.Point and java.awt.point Εισαγωγή στον Προγραµµατισµό,,, Slide 13 Εισαγωγή στον Προγραµµατισµό,,, Slide 14 Η κλάση String Η κλάση String είναι ίσως η πιο συχνά χρησιµοποιούµενη κλάση Αντικείµενα τύπου String δεν µπορεί να µεταλλαχθούν [immutable] Η τιµή τους δεν µπορεί να αλλαχθεί µετά τη δηµιουργία τους Η Java υποστηρίζει τον ειδικό τελεστή συνένωσης αλφαριθµητικών ( + ) Η κλάση String Η κλάση String περιλαµβάνει µεθόδους οι οποίες υποστηρίζουν: Ατοµική εξέταση χαρακτήρων της συµβολοσειράς Σύγκριση συµβολοσειρών Αναζήτηση «Εξαγωγή» τµηµάτων συµβολοσειρών [substrings] ηµιουργία αντιγράφων συµβολοσειρών όπου όλα τα γράµµατα έχουν µετατραπεί σε πεζά ή κεφαλαία String cde = "cde"; System.out.println("abc" + cde); Εισαγωγή στον Προγραµµατισµό,,, Slide 15 Εισαγωγή στον Προγραµµατισµό,,, Slide 16 Η κλάση Math Περιέχει µεγάλο αριθµό στατικών [static] µεθόδων για µαθηµατικους υπολογισµους abs, max, min, sin, cos, tan, sqrt etc. random (επιστρεφει τυχαιο αριθµο αναµµεσα στο 0 και το 1) Εάν χρειάζεστε έναν τυχαίο αριθµό (τύπου double) από το διάστηµα [0.0, 1.0) Η κλάση Math εν µπορούµε να κατασκευάσουµε αντικείµενα της κλάσης Math Περιέχει 2 σταθερές Math.PI Math.E (βάση του φυσικού λογάριθµου) double myrandom = Math.random(); // [0,1) Εισαγωγή στον Προγραµµατισµό,,, Slide 17 Εισαγωγή στον Προγραµµατισµό,,, Slide 18

Κλάσεις συσκευαστές (Wrapper Classes) Βασικοί τύποι και συσκευαστές Κάθε βασικός τύπος της Java έχει µια αντίστοιχη κλάση συσκευαστή [wrapper class] Η κλάση ιακρίνεται από το κεφαλαίο αρχικό της γράµµα Εξαίρεση είναι οι τύποι char και int στους οποίους αντιστοιχούν οι Character και Integer «Ενθυλακώνει» µια απλή τιµή Η τιµή δεν µπορεί να µεταβληθεί Αντικείµενα των κλάσεων συσκευαστών µπορεί να κατασκευαστούν δίνοντας ως παράµετρο την τιµή που θα ενθυλακωθεί Βασικός τύπος byte short int long float double char boolean Συσκευαστής Byte Short Integer* Long Float Double Character* Boolean Εισαγωγή στον Προγραµµατισµό,,, Slide 19 Εισαγωγή στον Προγραµµατισµό,,, Slide 20 Οι βασικοί τύποι και τα αντικείµενα είναι πολύ διαφορετικές οντότητες Μέθοδοι δεν µπορούν να κληθούν για βασικούς τύπους Τελεστές όπως οι +, -, * και / δεν µπορεί να εφαρµοστούν στα περισσότερα αντικείµενα Σηµείωση: Η χρήση του τελεστή + µε αντικείµενα τύπου String είναι η µόνη εξαίρεση Υπάρχουν και άλλες διάφορες που δεν έχουν αναφερθεί public class SimpleExample public static void main(string s[]) int myinta = 56; Integer myintb = new Integer(56); int valuea = myintb + myinta; int valueb = myinta.intvalue() + myintb.intvalue(); int valuec = myinta + myintb.intvalue(); Εισαγωγή στον Προγραµµατισµό,,, Slide 21 Εισαγωγή στον Προγραµµατισµό,,, Slide 22 Κλάσεις συσκευαστές D:\t>javac SimpleExample.java SimpleExample.java:8: Incompatible type for +. Can't convert java.lang.integer to int. int valuea = myintb + myinta; ^ SimpleExample.java:9: Can't invoke a method on a int. int valueb = myinta.intvalue() + myintb.intvalue(); ^ 2 errors Αντικείµενα όλων των κλάσεων συσκευαστών, εκτός της Character, µπορεί να δηµιουργηθούν δίνοντας ως παράµετρο την τιµή για ενθυλάκωση σε µορφή String Η τιµή ενός ενθυλακωµένου αριθµού µπορεί να ανακτηθεί ως οποιουδήποτε βασικού τύπου αριθµητικό δεδοµένο Οι κλάσεις συσκευαστές περιέχουν στατικές µεθόδους για την «µετάφραση» συµβολοσειρών Integer.parseInt(inputString) Εισαγωγή στον Προγραµµατισµό,,, Slide 23 Εισαγωγή στον Προγραµµατισµό,,, Slide 24

Παράδειγµα Java public class SimpleExample public static void main(string s[]) String mystringa = "123"; String mystringb = "456"; int myint = Integer.parseInt(myStringA) + Integer.parseInt(myStringB); System.out.println("Addition 1 " + mystringa + mystringb); System.out.println("Addition 2 " + myint); D:\>java SimpleExample Addition 1 123456 Addition 2 579 Κλάσεις συσκευαστές Τα αντικείµενα κλάσεων συσκευαστών είναι «πλήρη» αντικείµενα που µπορεί να αποθηκευθούν σε διανύσµατα αντικειµένων τύπου Object Αντιµετωπίζονται ως αναφορές κατά την κλήση µεθόδων (όπως όλα τα αλλά αντικείµενα) Η µέθοδος equals() χρησιµοποιείται για σύγκριση των ενθυλακωµένων τιµών Οι κλάσεις συσκευαστές παρέχουν και άλλες λειτουργίες που δεν εξετάστηκαν Εισαγωγή στον Προγραµµατισµό,,, Slide 25 Εισαγωγή στον Προγραµµατισµό,,, Slide 26 Χρησιµοποιείται για προσπέλαση ιδιοτήτων του συστήµατος, του συλλέκτη άσκοπα δεσµευµένης µνήµης [garbage collector], της τρέχουσας ώρας, και επιτρέπει την αλλαγή της κύριας εισόδου, εξόδου και εξόδου λαθών. Όπως συµβαίνει και µε την κλάση Math, όλες οι µέθοδοι και µεταβλητές της κλάσης System είναι µέθοδοι και µεταβλητές κλάσης (στατικές) Η κλήση της µεθόδου gc() «προτείνει» στην ιδεατή µηχανή Java (JVM) να ασχοληθεί µε την ανάκτηση άσκοπα δεσµευµένης µνήµης System.gc() Σηµείωση: πρόκειται απλώς για «πρόταση». εν δίνεται καµία εγγύηση ότι το πρόγραµµα ανάκτησης µνήµης θα εκτελεστεί Περιέχει τη µέθοδο exit() η οποία τερµατίζει την εκτέλεση της εικονικής µηχανής Java (JVM) Εισαγωγή στον Προγραµµατισµό,,, Slide 27 Εισαγωγή στον Προγραµµατισµό,,, Slide 28 Η στατική µέθοδος System.currentTimeMilliseconds() επιστρέφει την τρέχουσα ώρα Στην Java η ώρα είναι ένας αριθµός τύπου long που αναπαριστά χιλιοστά του δευτερολέπτου (milliseconds) Αρχή µέτρησης χρόνου:gmt 1 η Ιανουαρίου 1970 Πεδίο 64 bits: έως 292,280,995 µ.χ. Οι αριθµοί τύπου long στην Java έχουν πρόσηµο. Αρνητικές τιµές ερµηνεύονται ως χρονικές στιγµές πριν την αρχή της «νέας χρονικής περιόδου» Αποδοκιµασία/απαξίωση (Deprecation) Οι επίσηµες βιβλιοθήκες της Java (API) αλλάζουν µεταξύ διαδοχικών εκδόσεων Ορισµένοι τρόποι επίλυσης προγραµµατιστικών προβληµάτων παύουν να ενδείκνυνται και η χρήση τους ίσως παύσει να υποστηρίζεται σε µελλοντικές εκδόσεις της βιβλιοθήκης Για να διευκολύνει την έγκαιρη µετατροπή των προγραµµάτων, ο µεταφραστής της Java προειδοποιεί όποτε επιχειρούµε να µεταφράσουµε ένα πρόγραµµα που χρησιµοποιεί µια αποδοκιµασµένη κλάση ή µέθοδο Εισαγωγή στον Προγραµµατισµό,,, Slide 29 Εισαγωγή στον Προγραµµατισµό,,, Slide 30