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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

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

Προγραμματισμό για ΗΜΥ

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

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

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

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

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

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

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

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

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

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

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

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

Transcript:

Εκμάθηση αντικειμενοστραφή προγρ/σμού Η εκμάθηση μίας γλώσσας προγραμματισμού μπορεί να χωρισθεί σε δύο μέρη Διάλεξη #6: Η βιβλιοθήκη κλάσεων της Java Εκμάθηση της γλώσσας Σύνταξη, εντολές επιλογής, βρόγχοι, Εκμάθηση των βιβλιοθηκών (API) Συχνά χρησιμοποιούμενες δομές δεδομένων Διαπροσωπείες ανθρώπου-μηχανής (GUI), είσοδος/έξοδος, αποθήκευση δεδομένων, δικτύωση, Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 2 Εκμάθηση της γλώσσας Εκμάθηση των βιβλιοθηκών (API) abstract assert Boolean break byte case catch char class const* continue default do double else enum extends final finally float for goto* if implements instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while API = Application Programming Interface Η διαπροσωπεία (συμβάσεις κλήσεως) [interface (calling conventions)] μέσω της οποίας ένας προγραμματιστής εφαρμογών προσπελαύνει την βιβλιοθήκη κλάσεων της Java Java 2 Standard Edition, v 1.3. 1,840 κλάσεις και διαπροσωπείες [interfaces] Κατανεμημένες σε 75 πακέτα [packages] Java SE 8 (LTS, 2014) 4240 κλάσεις και διαπροσωπείες [Interfaces] Κατανεμημένες σε 217 πακέτα [packages] Java SE 11 (18.9 LTS) https://docs.oracle.com/en/java/javase/11/docs/api/ *: δεν χρησιμοποιούνται Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 3 Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 4 Βιβλιοθήκη κλάσεων Java Συχνά χρησιμοποιούμενα πακέτα Η Java SE 11, παρέχει μια μεγάλη συλλογή από κλάσειςπου υποστηρίζουν και απλουστεύουν πολλές συνήθεις προγραμματιστικές δραστηριότητες GUIs, TCP/IP sockets, CORBA, συμπίεση (ZIP), 2D Graphics, κρυπτογράφηση, Java SE: Ο «πυρήνας» της βιβλιοθήκης JDK (Java Development Kit) Οργανωμένες σε Modules java.base java.desktop java.lang Παρέχει κλάσεις που θεωρούνται θεμελιώδεις για το σχεδιασμό της γλώσσας προγραμματισμού Java (περιλαμβάνει την κλάση Math) java.math Παρέχει κλάσεις για την εκτέλεση αριθμητικών πράξεων μεγάλης ακρίβειας με ακέραιους (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 cde = "cde"; System.out.println("abc" + cde); Η κλάση String ΗκλάσηString περιλαμβάνει μεθόδους οι οποίες υποστηρίζουν: Ατομική εξέταση χαρακτήρων της συμβολοσειράς Σύγκριση συμβολοσειρών Αναζήτηση «Εξαγωγή» τμημάτων συμβολοσειρών [substrings] Δημιουργία αντιγράφων συμβολοσειρών όπου όλα τα γράμματα έχουν μετατραπεί σε πεζά ή κεφαλαία Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, 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