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

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

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

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

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

Constructors and Destructors in C++

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

ΓΗΜΟΙΑ ΟΙΚΟΝΟΜΙΚΗ ΣΟΜΟ Γ

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

Γεωμεηπικοί Τόποι Σςμμεηπίερ Α Λυκείου - Γεωμετρία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΥ-100 Ειζαγωγή ζηην Επιζηήμη Υπολογιζηών

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

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

Intel Accelerate Your Code

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

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

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

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

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

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

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

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

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

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

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

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

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

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

Μηα ζπλάξηεζε κε πεδίν νξηζκνύ ην Α, ζα ιέκε όηη παξνπζηάδεη ηοπικό μέγιζηο ζην, αλ ππάξρεη δ>0, ηέηνην ώζηε:

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

x x 15 7 x 22. ΘΔΜΑ Α 3x 2 9x 4 3 3x 18x x 5 y 9x 4 Α1. i. . Η ιύζε είλαη y y x 3y y x 3 2x 6y y x x y 6 x 2y 1 y 6

Διάρηζηα Δπηθαιύπηνληα Γέλδξα

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

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

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

4) Να γξάςεηε δηαδηθαζία (πξόγξακκα) ζηε Logo κε όλνκα θύθινο πνπ ζα ζρεδηάδεη έλα θύθιν. Λύζε Γηα θύθινο ζηθ επαλάιαβε 360 [κπ 1 δε 1] ηέινο

Εγκατάσταση του πακέτου XAMPP. Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά Άριςτοσ Παςιάσ

Τεκμηπίωζη Πποηύπων Σσεδίαζηρ ηηρ UML

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

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

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

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

Πως να δημιουργήσετε ένα Cross-Over καλώδιο

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

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

Άσκηση 1 - Μοπυοποίηση Κειμένου

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

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

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

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

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

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

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

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

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

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

ISO/IEC 27001:2005 Certificate No: IS Aegate Ltd 2011 All rights reserved

ΓΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη:Γςνάμειρ μεταξύ ηλεκτπικών φοπτίων

Βιομησανικόρ ζσεδιαζμόρ πποϊόνηων από ανακςκλωμένερ ζςζκεςαζίερ

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

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

ΠΡΟΣΕΙΝΟΜΕΝΕ ΛΤΕΙ. β. Η θαηάιπζε είλαη εηεξνγελήο, αθνύ ν θαηαιύηεο είλαη ζηεξεόο ελώ ηα αληηδξώληα αέξηα (βξίζθνληαη ζε δηαθνξεηηθή θάζε).

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

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

Transcript:

Τι θα δούμε σε αυτό το μάθημα; Οξηζκόο κηαο δηαζύλδεζεο (interface) κε ηελ πξνδηαγξαθή ηεο κνξθήο θαη ηνπ ηύπνπ επηζηξνθήο ηωλ κεζόδωλ. Υινπνίεζε κηαο δηαζύλδεζεο από κία δνκή ή κία θιάζε. Αλαθνξά ζε κία θιάζε κέζω κηαο δηαζύλδεζεο. Υινπνίεζε ηωλ θνηλώλ ζηνηρείωλ κηαο ηεξαξρίαο θιάζεωλ ζε κία αθαηξεηηθή (abstract) θιάζε. Υινπνίεζε ζθξαγηζκέλωλ (sealed) θιάζεωλ πνπ δελ κπνξνύλ λα ρξεζηκνπνηεζνύλ ωο θιάζεηο βάζεο γηα ηελ δεκηνπξγία παξάγωγωλ θιάζεωλ.

Τι είναι μία διασύνδεση (interface) Μία δηαζύλδεζε δειώλεη έλα ζύλνιν κεζόδωλ ρωξίο θαζόινπ πινπνίεζε. Μία θιάζε ή δνκή κπνξεί λα πινπνηήζεη ηελ δηαζύλδεζε πινπνηώληαο ηηο κεζόδνπο πνπ δειώλνληαη ζε απηή. Με απηόλ ηνλ ηξόπν ηα αληηθείκελα απηήο ηεο θιάζεο ή ηεο δνκήο είλαη πιένλ ζπκβαηά κε ηνλ ηύπν ηεο δηαζύλδεζεο θαη κπνξνύλ λα ρξεζηκνπνηεζνύλ όπνπ αλακέλνληαη αληηθείκελα ηνπ ηύπνπ ηεο δηαζύλδεζεο.

Γιατί χρειάζονται οι διασυνδέσεις; (1) Αο ππνζέζνπκε πωο πξνγξακκαηίδεηε κία νπξά πξνηεξαηόηεηαο. Η νπξά πξνηεξαηόηεηαο είλαη κία δνκή δεδνκέλωλ ζηελ νπνία ηα αληηθείκελα ηνπνζεηνύληαη πάληα κε αύμνπζα ζεηξά άζρεηα κε ηελ ζεηξά εηζαγωγήο ηνπο. Αο ππνζέζνπκε επηπιένλ πωο δελ γλωξίδεηε ηνλ ηύπν ηωλ αληηθεηκέλωλ πνπ ζα εηζαρζνύλ ζηελ νπξά. Τν κόλν πνπ γλωξίδεηε είλαη πωο ζα εηζαρζνύλ θάπνηα objects (ππελζπκίδεηαη πωο όιεο νη θιάζεηο ηεο C# είλαη παξάγωγεο ηεο θιάζεο object). Πνην πξόβιεκα ζα αληηκεηωπίζεηε θαηά ηνλ πξνγξακκαηηζκό ηεο νπξάο πξνηεξαηόηεηαο;

Γιατί χρειάζονται οι διασυνδέσεις; (2) Τν πξόβιεκα είλαη πωο δελ γλωξίδεηε κε πνηνλ ηξόπν ζα πξέπεη λα ζπγθξηζνύλ ηα αληηθείκελα κεηαμύ ηνπο. Αλ ήηαλ αθέξαηνη αξηζκνί ζα ρξεζηκνπνηνύζαηε ηελ αξηζκεηηθή ηνπο αμία, αλ ήηαλ string ηελ αιθαβεηηθή ηνπο ζεηξά. Σηελ πεξίπηωζή καο όκωο, κπνξεί λα είλαη νηηδήπνηε! Γηα λα ππεξβείηε απηό ην πξόβιεκα θαη λα πξνγξακκαηίζεηε ηελ νπξά πξνηεξαηόηεηαο, δειώλεηε κία δηαζύλδεζε θαη ππνρξεώλεηε ηνπο ρξήζηεο ηεο νπξάο ζαο λα πινπνηήζνπλ ηελ δηαζύλδεζε κε ηελ αθόινπζε ζεκαζία:

Γιατί χρειάζονται οι διασυνδέσεις; (3) interface IComparable int CompareTo(object obj); Η κέζνδνο CompareTo ζα πξέπεη λα: 1. Επηζηξέθεη 0 αλ ην ζηηγκηόηππν ηεο θιήζεο είλαη ίζν κε ην obj 2. Επηζηξέθεη αξλεηηθό αξηζκό αλ ην ζηηγκηόηππν ηεο θιήζεο είλαη κηθξόηεξν από ην obj 3. Επηζηξέθεη ζεηηθό αξηζκό αλ ην ζηηγκηόηππν ηεο θιήζεο είλαη κεγαιύηεξν από ην obj Τν System namespace νξίδεη ηελ δηαζύλδεζε IComparable ήδε κε ηελ ζεκαζία πνπ αλαθέξεηαη εδώ. Ωο πξνγξακκαηηζηέο ηεο νπξάο πξνηεξαηόηεηαο κπνξείηε λα ρξεζηκνπνηήζεηε ηελ δηαζύλδεζε θαηά ηηο ζπγθξίζεηο. Δειαδή ζηελ νπξά ζα εηζάγεηε αληηθείκελα ηεο δηαζύλδεζεο IComparable. Όζνη ζέινπλ λα ρξεζηκνπνηήζνπλ ηελ νπξά ζαο ζα πξέπεη λα πινπνηήζνπλ ηελ δηαζύλδεζε απηή κε ηελ ζπγθεθξηκέλε ζεκαζία πνπ ηεο δώζαηε εζείο.

Παράδειγμα δήλωσης διασύνδεσης Δειώλνπκε κία δηαζύλδεζε ILandBound. Η δηαζύλδεζε έρεη κία κόλν κέζνδν (πξνζέμηε πωο δελ βάδνπκε public ή θάηη άιιν) πνπ νλνκάδεηαη NumberOfLegs θαη επηζηξέθεη έλαλ αθέξαην αξηζκό. Πξνζέμηε πωο ε δηαζύλδεζε απιά δειώλεη ηελ ιεηηνπξγία απηή. Δελ ηελ πινπνηεί! namespace InterfacesExample1 interface ILandBound int NumberOfLegs(); Γηα λα δειώζεηε κία δηαζύλδεζε ρξεζηκνπνηείηε ηελ δεζκεπκέλε ιέμε interface αθνινπζνύκελε από ην όλνκα ηεο δηαζύλδεζεο θαη αλνίγεηε άγθηζηξα. Μέζα ζηα άγθηζηξα γξάθεηε ηηο κεζόδνπο ηεο δηαζύλδεζεο. Γηα θάζε κέζνδν δίλεηε ηελ κνξθή ηεο (ηύπνο επηζηξνθήο, όλνκα, παξάκεηξνη). Δελ δίλεηε πξνζδηνξηζηή πξόζβαζεο (π.ρ. public). Οη δειώζεηο ηωλ κεζόδωλ ηεξκαηίδνληαη κε έλα εξωηεκαηηθό. Δελ έρεηε δειαδή πινπνίεζε ηεο κεζόδνπ κέζα ζηελ δηαζύλδεζε.

Παράδειγμα κλάσεων που υλοποιούν την διασύνδεση Οη θιάζεηο Human θαη Horse πινπνηνύλ ηελ δηαζύλδεζε ILandBound θαη παξέρνπλ επνκέλωο ηελ πινπνίεζε ηεο κεζόδνπ NumberOfLegs: namespace InterfacesExample1 class Human : ILandBound public int NumberOfLegs() return 2; namespace InterfacesExample1 class Horse : ILandBound public int NumberOfLegs() return 4;

Υλοποίηση διασύνδεσης Όηαλ πινπνηείηε κία δηαζύλδεζε ζα πξέπεη νη αληίζηνηρεο κέζνδνη πινπνίεζεο λα ηαηξηάδνπλ αθξηβώο κε απηέο πνπ δειώζεθαλ ζηελ δηαζύλδεζε: Τν νλόκαηα ηωλ κεζόδωλ ζα πξέπεη λα είλαη όπωο αθξηβώο δειώζεθαλ ζηελ δηαζύλδεζε. Οη ηύπνη ηωλ παξακέηξωλ θαζώο επίζεο θαη νη ιέμεηο-θιεηδηά ref θαη out (αλ ππάξρνπλ) ζα πξέπεη λα ηαηξηάδνπλ απόιπηα. Οη κέζνδνη πνπ πινπνηνύλ κεζόδνπο κηαο δηαζύλδεζεο ζα πξέπεη λα είλαη δεκόζηεο (public) εθηόο θαη αλ ρξεζηκνπνηήζεηε ξεηή (explicit) πινπνίεζε δηαζύλδεζεο, νπόηε θαη δελ ζα βάιεηε θαζόινπ ην public. Οη κέζνδνη πνπ πινπνηνύλ κία δηαζύλδεζε κπνξνύλ πξναηξεηηθά λα ρξεζηκνπνηήζνπλ ρηηή (explicit) σλοποίηζη διαζύνδεζης (π.ρ. ILandBound.NameOfLegs αληί γηα NameOfLegs). Απηό είλαη ρξήζηκν αλ πινπνηείηε ζηελ ίδηα θιάζε δύν δηαζπλδέζεηο πνπ έρνπλ ην ίδην όλνκα κεζόδνπ. Αλ δελ αθνινπζήζεηε ηνπο πην πάλω θαλόλεο ηόηε ε θιάζε πνπ πινπνηεί ηελ δηαζύλδεζε δελ ζα κεηαγιωηηηζηεί επηηπρώο.

Αναφορά σε κλάσεις μέσω διασυνδέσεων Όηαλ κία θιάζε πινπνηεί κία δηαζύλδεζε ηόηε απνθηά ηνλ ηύπν ηεο (δειαδή ηα αληηθείκελα ηεο θιάζεο, ζεωξνύληαη αληηθείκελα θαη ηεο δηαζύλδεζεο). Επνκέλωο άιια πξνγξάκκαηα κπνξνύλ λα αλαθεξζνύλ ζε αληηθείκελα θιάζεωλ πνπ πινπνηνύλ δηαζπλδέζεηο, κέζω ηωλ δηαζπλδέζεωλ. Σην παξάδεηγκα πνπ αθνινπζεί ε εληνιή foreach, δνπιεύεη γηα θάζε αληηθείκελν πνπ πινπνηεί ηελ δηαζύλδεζε ILandBound.

Παράδειγμα χρήσης της διασύνδεσης using System; namespace InterfacesExample1 class Program static void Main(string[] args) ILandBound[] landboundmammals = new ILandBound[2]; landboundmammals[0] = new Horse(); landboundmammals[1] = new Human(); foreach (ILandBound mammal in landboundmammals) Console.WriteLine(mammal.NumberOfLegs()); Console.ReadKey();

Επιπλέον παρατηρήσεις για τις διασυνδέσεις Μία θιάζε κπνξεί λα πινπνηήζεη πεξηζζόηεξεο από κία δηαζπλδέζεηο νη νπνίεο ρωξίδνληαη κε θόκκα. Γηα παξάδεηγκα: public class A : ILandBound, IFourLegs Όηαλ αλαθεξόκαζηε ζε αληηθείκελα κέζω δηαζπλδέζεωλ, κπνξνύκε λα αλαθεξζνύκε κόλν ζηηο κεζόδνπο πνπ ππάξρνπλ ζηελ δηαζύλδεζε θαη όρη ζηηο άιιεο κεζόδνπο πνπ ελδερνκέλωο ππνζηεξίδεη ην αληηθείκελν. Δελ κπνξείηε λα δεκηνπξγήζεηε αληηθείκελα κηαο δηαζύλδεζεο. Γηα παξάδεηγκα ε εληνιή: ILandBound l = new ILandBound(); είλαη ζπληαθηηθό ιάζνο, δηόηη ην ILandBound είλαη δηαζύλδεζε θαη όρη θιάζε πνπ πινπνηεί ηελ δηαζύλδεζε. Αληηζέηωο ε εληνιή ILandBound l = new Horse(); είλαη νξζή, εθόζνλ βέβαηα ε θιάζε Horse πινπνηεί ηελ δηαζύλδεζε ILandBound.

Περιορισμοί για τις διασυνδέσεις Δελ κπνξείηε λα δειώζεηε πεδία ζε κία δηαζύλδεζε (π.ρ. κεηαβιεηέο). Δελ κπνξείηε λα δειώζεηε θαηαζθεπαζηέο ζε κία δηαζύλδεζε. Όιεο νη κέζνδνη πνπ δειώλεηε ζε κία δηαζύλδεζε είλαη εμ νξηζκνύ δεκόζηεο (public). Γη απηό θαη δελ κπνξείηε λα δειώζεηε πξνζδηνξηζηέο πξόζβαζεο γηα ηηο κεζόδνπο κηαο δηαζύλδεζεο. Μία δηαζύλδεζε δελ κπνξεί λα είλαη παξάγωγε θιάζεο ή δνκήο. Παξόια απηά κία δηαζύλδεζε κπνξεί λα είλαη παξάγωγε δηαζύλδεζε κηαο άιιεο δηαζύλδεζεο βάζεο.

Αφαιρετικές (abstract) κλάσεις Κάηη πνπ ζπκβαίλεη αξθεηά ζπρλά ζε ηεξαξρίεο θιάζεωλ είλαη λα δειώλνπκε θάπνηεο γεληθέο θιάζεηο βάζεο θαη νη παξάγωγεο θιάζεηο πνπ επεθηείλνπλ ηηο θιάζεηο βάζεο λα θιεξνλνκνύλ όια ηα κέιε θαη ηηο κεζόδνπο ηνπο. Οη παξάγωγεο θιάζεηο κπνξνύλ λα επεθηείλνπλ ηηο θιάζεηο βάζεο ηνπο πξνζζέηνληαο θαηλνύξγηα κέιε δεδνκέλωλ θαη κεζόδνπο. Σε έλα ηέηνην ζελάξην είλαη πηζαλόλ λα ππάξρεη θάπνηα κέζνδνο ζηελ θιάζε βάζεο ε νπνία δελ κπνξεί λα νξηζηεί ζε απηήλ αιιά κόλν λα δειωζεί. Δειαδή, ελώ κπνξνύκε λα πνύκε πωο ζα είλαη απηή ε κέζνδνο (ηύπνο επηζηξνθήο, όλνκα, ιίζηα παξακέηξωλ), ε ιεηηνπξγία ηεο ζηηο παξάγωγεο θιάζεηο ζα είλαη ηόζν δηαθνξεηηθή πνπ δελ έρεη λόεκα ε παξνρή θάπνηαο εμ νξηζκνύ ιεηηνπξγίαο. Αλ ζ' απηό ην ζελάξην, πξνζζέζνπκε θαη ηελ επηζπκία λα κελ κπνξεί θαλείο λα δεκηνπξγήζεη αληηθείκελα απηήο ηεο θιάζεο βάζεο ηόηε νδεγνύκαζηε ζηηο αθαηξεηηθέο (abstract) θιάζεηο θαη κεζόδνπο.

Παράδειγμα Abstract κλάσεων Φαληαζηείηε γηα παξάδεηγκα κία θιάζε Shape (ζρήκα) ελόο ζρεδηαζηηθνύ πξνγξάκκαηνο. Όια ηα ζρήκαηα έρνπλ έλα ζεκείν πνπ ζεωξείηαη ην θέληξν ηνπο. Επνκέλωο είλαη ινγηθό λα έρνπκε κία ηδηόηεηα center κε ηελ αληίζηνηρε πινπνίεζε (set θαη get). Παξόια απηά ε κέζνδνο ζρεδίαζεο, draw, ελώ ζα ππάξρεη γηα όια ηα ζρήκαηα δελ κπνξεί λα νξηζηεί κε αθξίβεηα ζηε θιάζε βάζεο γηαηί νη εληνιέο ζρεδίαζεο θάζε ζρήκαηνο δηαθέξνπλ αλάινγα κε ην ζρήκα. Επηπιένλ ζην πξόγξακκά καο δελ ζα είρε λόεκα λα δεκηνπξγήζνπκε έλα αληηθείκελν Shape, κηα θαη έλα ζρήκα ζα πξέπεη λα είλαη θάηη ζπγθεθξηκέλν (π.ρ. Circle, Line θιπ.)

Παράδειγμα: Η κλάση Point namespace AbstractClassesExample1 class Point private int x, y; public Point(int x, int y) this.x = x; this.y = y; public int X get return x; public int Y get return y;

Παράδειγμα: Η κλάση Shape namespace AbstractClassesExample1 abstract class Shape private Point center; public Point Center set this.center = value; get return this.center; abstract public void draw(); Η θιάζε Shape είλαη αθαηρεηηθή. Εποκέλως ζα πρέπεη λα ηελ δειώζεηε ως abstract. Επίζες ζα πρέπεη λα δειώζεηε ως abstract θαη ηης κεζόδοσς γηα ηης οποίες δελ παρέτεηε σιοποίεζε. Οη παράγωγες θιάζεης ηες Shape ζα θιερολοκήζοσλ ηα ζηοητεία ποσ σιοποηούληαη (γηα παράδεηγκα ηελ ηδηόηεηα Center), αιιά ζα πρέπεη λα σιοποηήζοσλ ηης αθαηρεηηθές κεζόδοσς, όπως ε draw().

Παράδειγμα: Η κλάση Circle using System; namespace AbstractClassesExample1 class Circle : Shape public override void draw() Console.WriteLine("Υινπνίεζε ηεο draw γηα ηνπο θύθινπο"); Η θιάζε Circle είλαη παράγωγε ηες αθαηρεηηθής θιάζες Shape θαη ζα πρέπεη λα ορίζεη ηελ σιοποίεζε ηες αθαηρεηηθής κεζόδοσ draw. Δελ τρεηάδεηαη όκως λα ορίζεη εθ λέοσ ηο θέληρο (ηελ ηδηόηεηα Center) γηαηί ασηήλ θιερολοκείηαη από ηελ θιάζε βάζες Shape.

Παράδειγμα: Η κλάση Line using System; namespace AbstractClassesExample1 class Line : Shape public override void draw() Console.WriteLine("Υινπνίεζε ηεο draw γηα ηηο γξακκέο"); Η θιάζε Line είλαη επίζες παράγωγε ηες αθαηρεηηθής θιάζες Shape θαη ζα πρέπεη λα ορίζεη ηελ σιοποίεζε ηες αθαηρεηηθής κεζόδοσ draw γηα ηης γρακκές. Επίζες δελ τρεηάδεηαη λα ορίζεη εθ λέοσ ηο θέληρο (ηελ ηδηόηεηα Center) γηαηί ασηήλ θιερολοκείηαη από ηελ θιάζε βάζες Shape.

Παράδειγμα χρήσης των κλάσεων using System; namespace AbstractClassesExample1 class Program static void Main(string[] args) Shape s1 = new Circle(); s1.center = new Point(10, 10); Console.WriteLine("Τν θέληξν ηνπ θύθινπ είλαη: (x, y) = (0, 1)", s1.center.x, s1.center.y); s1.draw(); Shape s2 = new Line(); s2.center = new Point(3, 7); Console.WriteLine("Τν θέληξν ηεο γξακκήο είλαη: (x, y) = (0, 1)", s2.center.x, s2.center.y); s2.draw(); Console.ReadKey();

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

Σφραγισμένες κλάσεις Αλ δελ ζέινπκε κία θιάζε λα κπνξεί λα ρξεζηκνπνηεζεί ωο θιάζε βάζεο ζε κία ηεξαξρία θιάζεωλ, ηόηε ηελ δειώλνπκε ωο ζθξαγηζκέλε (sealed). Γηα παξάδεηγκα: // Σθξαγηζκέλε θιάζε. Δελ κπνξεί λα επεθηαζεί. sealed class SealedClassExample public int Add(int x, int y) return x + y;

Περίληψη #1 Εργαζία Πωο δεκηνπξγνύκε κία δηαζύλδεζε Πωο πινπνηνύκε κία δηαζύλδεζε Τη πρέπεη λα θάλω Φξεζηκνπνηνύκε ηελ ιέμε-θιεηδί interface. Γηα παξάδεηγκα: interface IDemo string Name(); string Description(); Δειώλνπκε κία θιάζε πνπ πινπνηεί ηελ δηαζύλδεζε κε ηνλ ίδην ηξόπν πνπ δειώλνπκε πωο κία θιάζε είλαη παξάγωγε κηαο θιάζεο βάζεο. Υινπνηνύκε όιεο ηηο κεζόδνπο ηεο δηαζύλδεζεο. Γηα παξάδεηγκα: class Test : IDemo public string IDemo.Name() public string IDemo.Description()..

Περίληψη #2 Εργαζία Πωο δειώλνπκε κία αθαηξεηηθή θιάζε Πωο ρξεζηκνπνηνύκε κία αθαηξεηηθή θιάζε ωο θιάζε βάζεο κηαο παξάγωγεο θιάζεο. Τη πρέπεη λα θάλω Δειώλνπκε κία θιάζε ρξεζηκνπνηώληαο ηελ ιέμε-θιεηδί abstract. Γηα θάζε αθαηξεηηθή κέζνδν επίζεο ρξεζηκνπνηνύκε ηελ ιέμε-θιεηδί abstract. Γηα παξάδεηγκα: abstract class GrazingMammal abstract public void DigestGrass();... Επεθηείλνπκε ηελ αθαηξεηηθή θιάζε ωο ζπλήζωο. Θα πξέπεη ππνρξεωηηθά λα πινπνηήζνπκε ηηο αθαηξεηηθέο κεζόδνπο ηεο θιάζεο βάζεο. Γηα παξάδεηγκα: public class Horse : GrazingMammal public void DigestGrass() //σιοποίεζε ηες DigestGrass

Περίληψη #3 Εργαζία Πωο δειώλνπκε κία θιάζε πνπ δελ κπνξεί λα επεθηαζεί από κία παξάγωγε θιάζε Τη πρέπεη λα θάλω Τελ δειώλνπκε ωο ζθξαγηζκέλε (sealed). Γηα παξάδεηγκα: sealed class SealedClassExample public int Add(int x, int y) return x + y;

Ερωτήσεις;