Διαφορές μεταξύ αξιών και αναφορών #1

Σχετικά έγγραφα
Constructors and Destructors in C++

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Τι θα δούμε σε αυτό το μάθημα;

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Τι θα δούμε σε αυτό το μάθημα;

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

Τι θα δούμε σε αυτό το μάθημα;

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

Ενδεικτικά Θέματα Στατιστικής ΙΙ

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

ΕΞΙΣΩΣΕΙΣ. Α. Πρωτοβάθμιεσ Εξιςώςεισ. Β. Διερεφνηςη Εξιςώςεων. 1x είναι αδφνατθ. x 1 x 1. Άλγεβρα Α Λυκείου

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

ΘΔΜΑ 1 ο Μονάδες 5,10,10

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

Αντισταθμιστική ανάλυση

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Intel Accelerate Your Code

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ. Αθροίσματα, Γινόμενα και Ασσμπτωτικές Εκτιμήσεις

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γεσηέρα 10 Ηοσνίοσ 2019 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

ΓΔΧΜΔΣΡΙΑ ΓΙΑ ΟΛΤΜΠΙΑΓΔ

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

Διαςτήματα εμπιςτοςφνησ για την ευθεία παλινδρόμηςησ

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

ΔΝΓΔΙΚΤΙΚΔΣ ΛΥΣΔΙΣ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΔΥΘΥΝΣΗΣ Γ ΛΥΚΔΙΟΥ ΓΔΥΤΔΡΑ 27 ΜΑΪΟΥ 2013

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

ΔΠΙΣΡΟΠΗ ΓΙΑΓΩΝΙΜΩΝ 74 ος ΠΑΝΔΛΛΗΝΙΟ ΜΑΘΗΣΙΚΟ ΓΙΑΓΩΝΙΜΟ ΣΑ ΜΑΘΗΜΑΣΙΚΑ Ο ΘΑΛΗ 19 Οκηωβρίοσ Δνδεικηικές λύζεις

γηα ηνλ Άξε Κσλζηαληηλίδε

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Γ Γυμνασίου ΥΟΛΕΙΟ..

Τ ξ ε ύ ο ξ π ς ξ σ ξ ο ί ξ σ _ Ι ε ο α μ ε ι κ ό π

Δηζαγωγή ζηε γιώζζα C Παξνπζίαζε 3 ε : Δίζνδνο/ Έμνδνο - Σπλαξηήζεηο - Pointers

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

ΓΙΑΙΡΔΣΟΣΗΣΑ. Οπιζμόρ 1: Έζηω d,n. Λέκε όηη ν d δηαηξεί ηνλ n (ζπκβνιηζκόο: dn) αλ. ππάξρεη c ηέηνην ώζηε n. Θεώπημα 2: Γηα d,n,m,α,b ηζρύνπλ:

UML (Unified Modeling Language )

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

Αιγόξηζκνη Δνκή επηινγήο. Απιή Επηινγή ύλζεηε Επηινγή. Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Τ. introcsprinciples.wordpress.

Εξγαζηήξην Πιεξνθνξηθήο

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Εισαγωγή στη Φωτογραυία. Χριζηάκης Σαζεΐδης - EFIAP

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

T A E K W O N D O. Δ. ΠπθαξΨο. ΔπΫθνπξνο ΘαζεγεηΪο ΑζιεηηθΪο ΦπζηθνζεξαπεΫαο ΡΔΦΑΑ - ΑΞΘ

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Οργάνωση και Δομή Παρουσιάσεων

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

Transcript:

Τι θα δούμε σε αυτό το μάθημα; Επεμήγεζε θαη δηαθνξέο κεηαμύ ηύπσλ πνπ αληηπξνζσπεύνπλ αμίεο (values) θαη ηύπσλ πνπ αληηπξνζσπεύνπλ αλαθνξέο (references). Πέξαζκα παξακέηξσλ ζε κεζόδνπο θαη ηξνπνπνίεζε ηνπ ηξόπνπ πεξάζκαηνο παξακέηξσλ ζηηο κεζόδνπο κε ηηο ιέμεηο-θιεηδηά ref θαη out. Τελ εηδηθή ηηκή null. Μεηαηξνπή κηαο κεηαβιεηήο πνπ ν ηύπνο ηεο είλαη αμία ζε αληηθείκελν (boxing) Μεηαηξνπή ηνπ ηύπνπ αλαθνξάο ζην αληηθείκελν πνπ παξάρζεθε κε boxing πίζσ ζηνλ αξρηθό ηύπν αμίαο (unboxing).

Διαφορές μεταξύ αξιών και αναφορών #1 Οη πξνθαζνξηζκέλνη ηύπνη δεδνκέλσλ ηεο C# όπσο int, double, float θαη char είλαη ηύπνη αμηώλ. Μνλαδηθή εμαίξεζε είλαη ν ηύπνο string πνπ είλαη ηύπνο αλαθνξάο. Υπάξρνπλ όκσο θαη ηύπνη αλαθνξώλ, όπσο γηα παξάδεηγκα νη θιάζεηο πνπ δειώλεηαη εζείο ζε έλα πξόγξακκα. Η δηαθνξά είλαη ζεκαληηθή: Γηα ηνπο ηύπνπο αμηώλ ν κεηαγισηηηζηήο δεζκεύεη αξθεηό ρώξν κλήκεο γηα λα ηνπνζεηήζεη εθεί ηα πεξηερόκελα ησλ κεηαβιεηώλ (π.ρ. 4 bytes γηα έλαλ αθέξαην). Γηα ηνπο ηύπνπο αλαθνξώλ ν κεηαγισηηηζηήο δεζκεύεη πάληα ηνλ ίδην ρώξν κλήκεο πνπ ζα πεξηέρεη ηελ δηεύζπλζε ηνπ αληηθεηκέλνπ (δει. ηελ αλαθνξά ζην αληηθείκελν θαη όρη ηηο ηηκέο ησλ πεδίσλ ηνπ).

Διαφορές μεταξύ αξιών και αναφορών #2 Όηαλ δειώλεηαη κία κεηαβιεηή ελόο ηύπνπ αμίαο (π.ρ. int age) ηόηε κπνξείηε λα θαληαζηείηε πσο ηζρύεη θάηη ζαλ θη απηό πνπ θαίλεηαη ζηελ εηθόλα: Αλ δειώζεηε κία κεηαβιεηή αλαθνξάο ηόηε απηήλ ζα πεξηέρεη κία αλαθνξά ζηνλ ρώξν κλήκεο πνπ ζα απνζεθεπζνύλ νη ηηκέο ησλ πεδίσλ ηνπ αληηθεηκέλνπ, νη νπνίεο βέβαηα κπνξνύλ κε ηελ ζεηξά ηνπο λα είλαη θη απηέο αλαθνξέο.

Καταχώρηση τιμών σε μεταβλητές τύπου αξιών Όηαλ θαηαρσξείηε κία ηηκή ζε κηα κεηαβιεηή ηύπνπ αμίαο (π.ρ. int) ηόηε ε ηηκή απηή ηνπνζεηείηαη ζηελ ζέζε κλήκεο πνπ έρεη δεζκεπζεί γηα ηελ κεηαβιεηή. Αλ θαηαρσξήζεηε ηελ κεηαβιεηή απηή ζε κία άιιε κεηαβιεηή ηνπ ίδηνπ ηύπνπ ηόηε απιά αληηγξάθεηαη ε ηηκή ηεο. Είλαη ζεκαληηθό λα θαηαιάβνπκε πσο νη δύν κεηαβιεηέο είλαη αλεμάξηεηεο παξόηη ζηηγκηαία έρνπλ ηελ ίδηα ηηκή: Αλ αιιάμεη ηηκή ε κία δελ αιιάδεη ε άιιε. Γηα παξάδεηγκα: int i = 42; // δήιωζε θαη αξρηθνπνίεζε ηνπ i ζην 42 int copyi = i; // ην copyi γίλεηαη θη απηό 42 i++; // ην i απμάλεηαη αιιά απηό δελ επεξεάδεη ην copyi

Καταχώρηση τιμών σε μεταβλητές τύπου αναφορών Όηαλ θαηαρσξείηε κία ηηκή ζε κηα κεηαβιεηή ηύπνπ αλαθνξάο (π.ρ. Circle πνπ είλαη κία θιάζε πνπ δεκηνπξγήζαηε εζείο) ηόηε απηό πνπ ηνπνζεηείηαη ζηελ ζέζε κλήκεο πνπ έρεη δεζκεπζεί γηα ηελ κεηαβιεηή είλαη ε δηεύζπλζε ζηελ κλήκε ηνπ αληηθεηκέλνπ Circle. Αλ θαηαρσξήζεηε ηελ κεηαβιεηή απηή ζε κία άιιε κεηαβιεηή ηνπ ίδηνπ ηύπνπ αλαθνξάο ηόηε αληηγξάθεηαη ε δηεύζπλζε ηνπ αληηθεηκέλνπ. Δύν δηαθνξεηηθέο κεηαβιεηέο αλαθέξνληαη ζην ίδην αληηθείκελν. Είλαη ζεκαληηθό λα θαηαιάβνπκε πσο νη δύν κεηαβιεηέο αλαθέξνληαη ζην ίδην αληηθείκελν. Επνκέλσο αλ αιιάμεη ε ηηκή ελόο πεδίνπ γηα ην έλα αληηθείκελν ζα αιιάμεη θαη γηα ην άιιν. Γηα παξάδεηγκα: Circle c = new Circle(42); //έλα αληηθείκελν c ηύπνπ Circle Circle refc = c; //ην refc αλαθέξεηαη ζην ίδην αληηθείκελν κε ην c

Η διαφορά μεταξύ αξιών και αναφορών οπτικά Από ηελ εηθόλα είλαη πξνθαλέο πσο αλ αιιάμεη ην i (copyi) δελ επεξεάδεηαη ην copyi (i). Αληηζέησο ζηελ πεξίπησζε ησλ c θαη refc πνπ αλαθέξνληαη ζην ίδην αληηθείκελν ε αιιαγή ηνπ radius ζα επεξεάζεη θαη ηηο δύν αλαθνξέο. Αλ θαη δελ κάζακε αθόκε πσο κπνξνύλ λα αιιάμνπλ ηηκή ηα πεδία ελόο αληηθεηκέλνπ κεηά ηελ θαηαζθεπή ηνπ, ζα δνύκε αξγόηεξα πσο επηηπγράλεηαη απηό κε ηδηόηεηεο (properties).

Πέρασμα παραμέτρων σε μεθόδους Όηαλ πεξλάηε κία παξάκεηξν ζε κία κέζνδν ηόηε ε κέζνδνο ελδέρεηαη λα αιιάμεη ηελ ηηκή ηεο παξακέηξνπ. Θα επεξεάζεη απηό ηελ αξρηθή κεηαβιεηή πνπ ρξεζηκνπνηήζαηε σο παξάκεηξν θαηά ηελ θιήζε ηεο κεζόδνπ; Τελ απάληεζε ζ απηό ην εξώηεκα ζα ηελ ζπδεηήζνπκε κε έλα παξάδεηγκα.

Παράδειγμα #1 class Pass public static void Value(int param) param = 42; Εξώηεζε: Τη ζα εκθαλίζεη ην πξόγξακκα; public static void Main() int i = 0; Console.WriteLine("Τηκή ηνπ i πξηλ ηελ θιήζε ηεο Value: 0",i); Pass.Value(i); Console.WriteLine("Τηκή ηνπ i κεηά ηελ θιήζε ηεο Value: 0", i); Console.ReadKey();

Απάντηση στο Παράδειγμα #1 Θα εκθαλίζεη 2 θνξέο ην 0. Τν i δελ άιιαμε ηηκή γηαηί ήηαλ ηύπνπ αμίαο (int) θαη ε παξάκεηξνο ήηαλ έλα αληίγξαθν. Επνκέλσο αλ θαη ζην αληίγξαθν ηνπνζεηήζεθε ε ηηκή 42 από ηελ κέζνδν Value απηό δελ επεξέαζε ηελ ηηκή ηεο κεηαβιεηήο i ζηελ κέζνδν Main

Παράδειγμα #2 class WrappedInt public int Number; class Pass2 public static void Value(WrappedInt param) param.number = 42; Εξώηεζε: Τη ζα εκθαλίζεη ην πξόγξακκα; public static void Main() WrappedInt wi = new WrappedInt(); Console.WriteLine("Τηκή ηνπ wi.number πξηλ ηελ θιήζε ηεο Value: 0", wi.number); Pass2.Value(wi); Console.WriteLine("Τηκή ηνπ wi.number κεηά ηελ θιήζε ηεο Value: 0", wi.number); Console.ReadKey();

Απάντηση στο Παράδειγμα #2 Θα εκθαλίζεη ην 0 θαη κεηά ην 42. Ο ιόγνο είλαη πσο θαη πάιη αληηγξάθεηαη ε παξάκεηξνο, αιιά απηή ηε θνξά ε παξάκεηξνο είλαη ηύπνο αλαθνξάο (ν ηύπνο WrappedInt). Επνκέλσο νη δύν αλαθνξέο (ε αξρηθή θαη ην αληίγξαθν) αλαθέξνληαη ζην ίδην αληηθείκελν θαη άξα ζην ίδην WrappeInt.Number

Η ειδική τιμή null Οη κεηαβιεηέο πνπ είλαη ηύπνπ αμηώλ κπνξνύλ λα αξρηθνπνηεζνύλ ζε θάπνηεο ηηκέο αλάινγα κε ηνλ ηύπν ηνπο (π.ρ. 0, false θιπ.). Όπσο είπακε είλαη θαιή ηδέα λα αξρηθνπνηνύκε ηηο κεηαβιεηέο ζαθώο απνδίδνληαο κία ηηκή ζε απηέο θαηά ηελ δεκηνπξγία ηνπο θαη ζα πξέπεη νπσζδήπνηε λα ηηο αξρηθνπνηήζνπκε πξηλ ηηο ρξεζηκνπνηήζνπκε. Γηα παξάδεηγκα: int i = 0; double d = 0.0; Οη κεηαβιεηέο πνπ είλαη ηύπνπ αλαθνξάο πξέπεη λα αξρηθνπνηνύληαη (αλ δελ δεκηνπξγήζνπκε θάπνην αληηθείκελν κε ην new) ζηελ εηδηθή ηηκή null. Γηα παξάδεηγκα: Circle c = new Circle(42); Circle copy = null; // αξρηθνπνίεζε ζηελ ηηκή null... if (copy == null) //απηό ηζρύεη copy = c; // ην copy θαη ην c ηώξα αλαθέξνληαη ζην ίδην αληηθείκελν

Nullable τύποι Οη ηύπνη αμηώλ δελ κπνξνύλ λα πάξνπλ ηελ εηδηθή ηηκή null. Παξόια απηά ζηελ C# (ζε αληίζεζε π.ρ. κε ηελ Java) κπνξνύκε λα δειώζνπκε κία κεηαβιεηή ηύπνπ αμίαο ρξεζηκνπνηώληαο ηνλ ηξνπνπνηεηή (modifier)?, θαη έηζη λα κπνξνύκε λα απνδώζνπκε ζηελ κεηαβιεηή ηελ εηδηθή ηηκή null παξόηη είλαη αμία θαη όρη αλαθνξά. Γηα παξάδεηγκα: int i = null; //απαγνξεύεηαη int? i = null; //επηηξέπεηαη

Χρήση nullable μεταβλητών Μπνξείηε λα απνδώζεηε ηηκέο ζε nullable κεηαβιεηέο σο ζπλήζσο αλάινγα κε ηνλ ηύπν ηνπο. Γηα παξάδεηγκα ηα αθόινπζα παξαδείγκαηα είλαη έγθπξα: int? i = null; int j = 99; i = 100; // ην 100 θαηαρσξείηε ζην nullable i i = j; // ην j αληηγξάθεηαη ζην nullable i Δελ κπνξείηε λα θαηαρσξήζεηε κία nullable κεηαβιεηή ζε κία όρη nullable κεηαβιεηή, παξόηη νη δύν κεηαβιεηέο ελδέρεηαη λα έρνπλ ηνλ ίδην ηύπν. Τν αθόινπζν παξάδεηγκα δελ είλαη έγθπξν: int? i = null; int j = 99; j = i; //ιάζνο γηαηί ην i κπνξεί λα πάξεη ηελ ηηκή null ελώ ην j όρη

Ιδιότητες Nullable τύπων Οη Nullable κεηαβιεηέο έρνπλ δύν ηδηόηεηεο: HasValue: είλαη κία Boolean ηδηόηεηα πνπ είλαη αιεζήο αλ ζηελ κεηαβιεηή έρεη απνδνζεί θάπνηα ηηκή (δει. δελ είλαη null) Value: επηζηξέθεη ηελ ηηκή ηεο nullable κεηαβιεηήο. Μπνξείηε λα ρξεζηκνπνηήζεηε απηέο ηηο ηδηόηεηεο όπσο δείρλεη ην αθόινπζν παξάδεηγκα: int? i = null;... if (!i.hasvalue) i = 99; else Console.WriteLine(i.Value); Οη ηδηόηεηεο HasValue θαη Value δελ είλαη ρξήζηκεο γηα απιέο κεηαβιεηέο αμηώλ (όπσο νη int). Είλαη όκσο ρξήζηκεο γηα πνην ζύλζεηεο κεηαβιεηέο αμηώλ (όπσο Enumerations θαη Structures) πνπ ζα ζπδεηήζνπκε ζε επόκελα καζήκαηα.

Χρήση της λέξης-κλειδί ref Όπσο είδακε νη παξάκεηξνη κεζόδσλ πεξλνύλ πάληα κε αληηγξαθή. Έηζη δελ είλαη δπλαηόλ κία κέζνδνο λα επεξεάζεη ηελ αξρηθή κεηαβιεηή πνπ ρξεζηκνπνηήζεθε γηα ηελ παξάκεηξν, παξόηη ελδερνκέλσο ηελ αιιάδεη. Απηό ηζρύεη γηα όιεο ηηο κεηαβιεηέο (αμίεο ή αλαθνξέο). Αθόκε θαη ζηηο αλαθνξέο κπνξνύλ λα αιιάμνπλ νη ηηκέο ησλ πεδίσλ ηνπ αληηθεηκέλνπ, αιιά δελ κπνξεί λα αιιάμεη ε αλαθνξά (π.ρ. λα αλαθέξεηαη ζε έλα λέν αληηθείκελν). Απηό γεληθά είλαη επηζπκεηό θαη ζε θάπνηεο γιώζζεο πξνγξακκαηηζκνύ (π.ρ. Java) είλαη ε κόλε επηινγή. Σηελ C# όκσο ππάξρεη ε δπλαηόηεηα λα αιιάμεη ε κεηαβιεηή πνπ ρξεζηκνπνηήζεθε σο παξάκεηξνο αλ θαηά ηελ δήισζε ηεο παξακέηξνπ θαη θαηά ηελ θιήζε ηεο κεζόδνπ ρξεζηκνπνηήζνπκε ηελ ιέμεθιεηδί ref

Παράδειγμα χρήσης της ref class Pass public static void Value(ref int param) param = 42; Εξώηεζε: Τη ζα εκθαλίζεη ην πξόγξακκα; public static void Main() int i = 0; Console.WriteLine("Τηκή ηνπ i πξηλ ηελ θιήζε ηεο Value: 0",i); Pass.Value(ref i); Console.WriteLine("Τηκή ηνπ i κεηά ηελ θιήζε ηεο Value: 0", i); Console.ReadKey();

Απάντηση Θα εκθαλίζεη ην 0 θαη κεηά ην 42. Επεηδή ρξεζηκνπνηήζεθε ην ref θαηά ηελ δήισζε ηεο παξακέηξνπ θαη θαηά ηελ θιήζε ηεο κεζόδνπ, ε αξρηθή κεηαβιεηή άιιαμε ηηκή.

Χρήση της λέξης-κλειδί out Κάπνηεο κεηαβιεηέο ελδερνκέλσο λα ρξεηάδεηαη λα αξρηθνπνηεζνύλ από θάπνηεο κεζόδνπο. Σε απηή ηελ πεξίπησζε ζα πξέπεη λα ρξεζηκνπνηήζεηε ηελ ιέμε-θιεηδί out θαη θαηά ηελ δήισζε ηεο κεζόδνπ αιιά θαη θαηά ηελ θιήζε ηεο. Σεκεηώζηε πσο ε ρξήζε ηεο ref ζε απηή ηελ πεξίπησζε δελ ζα δνύιεπε, δηόηη ζηελ C# κία κεηαβιεηή ζα πξέπεη λα αξρηθνπνηεζεί πξηλ ηε ρξήζε ηεο.

Παράδειγμα χρήσης της out class Pass public static void Value(out int param) param = 42; public static void Main() int i; //ην i δελ έρεη αξρηθνπνηεζεί Pass.Value(out i); Εξώηεζε: Τη ζα εκθαλίζεη ην πξόγξακκα; Σεκείωζε: Αλ βάιεηε ref αληί γηα out ζα έρεηε ζπληαθηηθό ιάζνο: Use of unassigned local variable 'i' Console.WriteLine("Τηκή ηνπ i κεηά ηελ θιήζε ηεο Value: 0", i); Console.ReadKey();

Απάντηση Θα εκθαλίζεη ην 42. Η κεηαβιεηή i δελ είρε αξρηθνπνηεζεί θαηά ηελ θιήζε ηεο κεζόδνπ, αιιά απηό δελ είλαη ιάζνο γηαηί ην out δείρλεη ζηνλ κεηαγισηηηζηεί πσο απηήλ ε κεηαβιεηή ζα αξρηθνπνηεζεί (ζα εμαρζεί) από ηελ κέζνδν Value.

Η στοίβα (stack) και ο σωρός (heap) Οη κεηαβιεηέο πνπ δειώλεηε ζε έλα πξόγξακκα πάληνηε δεκηνπξγνύληαη ζε κία εηδηθή πεξηνρή πνπ νλνκάδεηαη ζηνίβα (stack). Απηό ηζρύεη γηα όιεο ηηο κεηαβιεηέο (αμίεο θαη αλαθνξέο). Παξόια απηά όπσο ήδε ζπδεηήζακε νη αλαθνξέο δελ είλαη παξά δηεπζύλζεηο ζε άιιεο ζέζεηο κλήκεο ζηηο νπνίεο απνζεθεύνληαη ηα αληηθείκελα. Τα αληηθείκελα δελ απνζεθεύνληαη ζηελ ζηνίβα αιιά ζε κία εηδηθή πεξηνρή κλήκεο πνπ νλνκάδεηαη ζσξόο (heap).

Η διαφορά μεταξύ σωρού και στοίβας Όιεο νη κεηαβιεηέο πνπ απνζεθεύνληαη ζε κία ζηνίβα, δηαγξάθνληαη όηαλ ην ηκήκα πξνγξάκκαηνο πνπ έρνπλ δεισζεί νινθιεξώλεηαη. Γηα παξάδεηγκα αλ έρνπκε δειώζεη κία ηνπηθή κεηαβιεηή ζε κία κέζνδν, απηήλ ζα δηαγξαθεί κόιηο νινθιεξσζεί ε κέζνδνο θαη επηζηξέςεη ην πξόγξακκα ζην ζεκείν θιήζεο ηεο κεζόδνπ. Η απειεπζέξσζε ηεο κλήκεο από ηνλ ζσξό γίλεηαη πην ζπάληα. Σπγθεθξηκέλα θάζε αληηθείκελν πνπ βξίζθεηαη ζηνλ ζσξό ελδερνκέλσο λα αλαθέξεηαη από πνιιέο κεηαβιεηέο (ηύπνπ αλαθνξώλ) πνπ βξίζθνληαη ζηελ ζηνίβα. Η δηαγξαθή ηνπ ζα γίλεη, κόλν όηαλ δελ αλαθέξεηαη πιένλ θακία κεηαβιεηή ζε απηό. Απηό επηηπγράλεηαη κε κία δηεξγαζία ρακειήο πξνηεξαηόηεηαο πνπ νλνκάδεηαη ζπιιέθηεο απνξξηκκάησλ (garbage collector) θαη ηελ νπνία ζα ζπδεηήζνπκε ζε επόκελν κάζεκα.

Οπτική αναπαράσταση της στοίβας και του σωρού

Μετατροπή αξιών σε αντικείμενα (Boxing) Η θιάζε object (ζηελ πξαγκαηηθόηεηα ςεπδώλπκν ηεο System.Object) είλαη ε ππεξθιάζε όισλ ησλ θιάζεσλ (όπσο ζα δνύκε όηαλ ζπδεηήζνπκε γηα ηελ θιεξνλνκηθόηεηα). Κάζε κεηαβιεηή πνπ είλαη αμία κπνξεί λα κεηαηξαπεί ζε object απηόκαηα αλ απνδνζεί ζε κία κεηαβιεηή ηύπνπ object. Απηήλ ε δηαδηθαζία κεηαηξνπήο κηαο αμίαο ζε αληηθείκελν νλνκάδεηαη boxing. Όηαλ θάλνπκε boxing, απηό πνπ ζπκβαίλεη είλαη πσο δεζκεύεηαη ρώξνο ζηνλ ζσξό γηα ην αληηθείκελν, θαη αληηγξάθεηαη εθεί ε ηηκή ηεο κεηαβιεηήο.

Παράδειγμα Boxing Σην παξάδεηγκα δεκηνπξγνύκε έλα αληηθείκελν κε ηελ ηηκή ηεο κεηαβιεηήο x (boxing) κόιηο θαηαρσξνύκε ην x ζε κία κεηαβιεηή ηύπνπ object (ζηελ o). Η κεηαηξνπή απηήλ γίλεηαη απηόκαηα κε ηελ θαηαρώξεζε ηηκήο.

Μετατροπή αντικειμένων σε αξίες (Unboxing) Όπσο είδακε κία κεηαβιεηή αλαθνξάο ηύπνπ object ελδέρεηαη λα αλαθέξεηαη ζε κία αμία. Απηά ηα αληηθείκελα παξάγνληαη κέζσ ηεο δηαδηθαζίαο boxing. Πσο κπνξείηε λα πάξεηε πίζσ απηή ηελ αμία; Η απάληεζε είλαη πσο κπνξείηε λα θάλεηε ηελ αληίζηξνθε δηαδηθαζία ηνπ unboxing. Μόλν πνπ θαηά ηελ δηαδηθαζία ηνπ unboxing ζα πξέπεη λα πξνζδηνξίζεηε ζαθώο ηνλ ηύπν ηεο αμίαο κε κία κεηαηξνπή ηύπνπ (θάζηα), δηόηη ζε έλα object κπνξεί λα πεξηέρεηαη νηηδήπνηε.

Παράδειγμα Unboxing Σην παξάδεηγκα παξαηεξείζηε πσο ν πξνγξακκαηηζηήο πξνζδηνξίδεη ζαθώο πσο ηα πεξηερόκελα ηνπ o είλαη αθέξαηνο αξηζκόο βάδνληαο ηελ θάζηα (int). Φσξίο ηελ θάζηα ζα είρακε ζπληαθηηθό ιάζνο. Επίζεο παξόηη βάδνπκε θάζηα ε κεηαηξνπή (unboxing) ζα απνηύρεη αλ ζηελ πξαγκαηηθόηεηα ην αληηθείκελν δελ πεξηέρεη έλαλ αθέξαην αξηζκό. Σ απηή ηελ πεξίπησζε ζα πξνθιεζεί ε εμαίξεζε InvalidCastException

Τρόποι αποφυγής της InvalidCastException - Ο τελεστής is Γηα λα απνθύγεηε ελδερόκελν InvalidCastException θαηά ηνλ ρξόλν εθηέιεζεο ηνπ πξνγξάκκαηνο κπνξείηε λα ρξεζηκνπνηήζεηε ηνλ ηειεζηή is. Ο ηειεζηήο is κπαίλεη αλάκεζα από έλα αληηθείκελν θαη έλαλ ηύπν, θαη επηζηξέθεη true αλ ην αληηθείκελν έρεη απηόλ ηνλ ηύπν θαη false δηαθνξεηηθά. Τν παξάδεηγκα πνπ αθνινπζεί δείρλεη πσο θάλνπκε αζθαιέο unboxing κε ηελ ρξήζε ηνπ ηειεζηή is: if (o is int) // αζθαιέο unboxing. Σίγνπξα ην o είλαη boxed int int y = (int)o; Console.WriteLine(y); Console.ReadKey();

Τρόποι αποφυγής της InvalidCastException - Ο τελεστής as Γηα λα απνθύγεηε ελδερόκελν InvalidCastException θαηά ηνλ ρξόλν εθηέιεζεο ηνπ πξνγξάκκαηνο κπνξείηε λα ρξεζηκνπνηήζεηε ελαιιαθηηθά ηνλ ηειεζηή as. Ο ηειεζηήο as κπαίλεη αλάκεζα από έλα αληηθείκελν θαη ζηνλ επηζπκεηό ηύπν κεηαηξνπήο. Αλ ε κεηαηξνπή κπνξεί λα γίλεη ηόηε επηζηξέθεηαη ην αληηθείκελν. Αλ δελ κπνξεί λα γίλεη επηζηξέθεηαη null. Τν παξάδεηγκα πνπ αθνινπζεί δείρλεη πσο θάλνπκε αζθαιέο unboxing κε ηελ ρξήζε ηνπ ηειεζηή as. Σην παξάδεηγκα ζα έπξεπε λα πξνθιεζεί InvalidCastException γηαηί ην o δελ είλαη int. Δελ πξνθαιείηαη όκσο γηαηί απνδίδεηαη ζην y ε ηηκή null. Πξνζέμηε πσο ζε απηή ηελ πεξίπησζε πξέπεη λα ρξεζηκνπνηήζνπκε ππνρξεσηηθά nullable int. object o = new Pass(); //ην o δελ είλαη int int? y = o as int?; // αζθαιέο unboxing κε ην as Console.WriteLine(y!=null?y.ToString():"null"); Console.ReadKey();

Άσκηση Τη θάλεη απηό ην πξόγξακκα; Μπνξείηε λα ζθεθηείηε έλαλ θαιύηεξν ηξόπν γηα λα πεηύρεηε ην ίδην απνηέιεζκα ρσξίο ην out; class Person string name; int age; public Person(string name, int age) this.name = name; this.age = age; public void returndata(out string line) line = name + " " + age; public static void Main() Person p = new Person("George", 44); string line; p.returndata(out line); Console.WriteLine(line); Console.ReadKey();

Περίληψη #1 Αληηγξαθή κηαο κεηαβιεηήο ηύπνπ αμίαο Απιά αληηγξάςηε ηελ κεηαβιεηή θαηαρσξώληαο ηελ ζε κία λέα κεηαβιεηή. Επεηδή ε κεηαβιεηή είλαη αμία, ζα έρεηε δύν αληίγξαθα ηεο ίδηαο ηηκήο. Γηα παξάδεηγκα: Αληηγξαθή κηαο αλαθνξάο int i = 42; int copyi = i; Απιά αληηγξάςηε ηελ κεηαβιεηή θαηαρσξώληαο ηελ ζε κία λέα κεηαβιεηή. Επεηδή ε κεηαβιεηή είλαη αλαθνξά, ζα έρεηε δύν αληίγξαθα ηεο ίδηαο αλαθνξάο πνπ ζα αλαθέξνληαη ζην ίδην αληηθείκελν. Γηα παξάδεηγκα: Δήιωζε κηαο κεηαβιεηήο αμίαο πνπ κπνξεί λα γίλεη null Circle c = new Circle(42); Circle refc = c; Δειώζηε ηελ κεηαβιεηή κε ηνλ ηξνπνπνηεηή?. Γηα παξάδεηγκα: int? i = null;

Περίληψη #2 Πέξαζκα παξακέηξνπ κε αλαθνξά Πέξαζκα παξακέηξνπ γηα εμαγωγή ηηκήο από ηελ κέζνδν. Φξεζηκνπνηείζηε ηελ ιέμε-θιεηδί ref θαη θαηά ηελ δήισζε ηεο παξακέηξνπ αιιά θαη θαηά ηελ θιήζε ηεο κεζόδνπ Φξεζηκνπνηείζηε ηελ ιέμε-θιεηδί out θαη θαηά ηελ δήισζε ηεο παξακέηξνπ αιιά θαη θαηά ηελ θιήζε ηεο κεζόδνπ. Η κεηαβιεηή κπνξεί λα κελ έρεη αξρηθνπνηεζεί πξηλ ηελ θιήζε θαη ζα πάξεη ηηκή από ηελ εθηέιεζε ηεο κεζόδνπ. Μεηαηξνπή απιήο αμίαο ζε αληηθείκελν (boxing) Μεηαηξνπή αληηθεηκέλνπ ζε απιή αμία (unboxing) Καηαρσξείζηε ζε έλα object ηελ ηηκή. Γηα παξάδεηγκα object o = 42; Καηαρσξείζηε ην object ζε κία κεηαβιεηή ηνπ θαηάιιεινπ ηύπν ρξεζηκνπνηώληαο θάζηα. Γηα παξάδεηγκα: int i = (int)o;

Ερωτήσεις;