ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Σχετικά έγγραφα
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διοικητική Λογιστική

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Βάσεις Περιβαλλοντικών Δεδομένων

Ασφάλεια Πληροφοριακών Συστημάτων

Προγραμματισμός Η/Υ. 6 η ενότητα: Συναρτήσεις. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Διδακτική Πληροφορικής

Διοικητική Λογιστική

Διδακτική Πληροφορικής

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Διδακτική Πληροφορικής

Βάσεις Περιβαλλοντικών Δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Τεχνικό Σχέδιο - CAD

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Τεχνικό Σχέδιο - CAD

Διδακτική Πληροφορικής

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Τεχνικό Σχέδιο - CAD

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Εισαγωγή στην Πληροφορική

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Δομή διαδικτυακών Πολυμέσων

Διδακτική Πληροφορικής

Τεχνικό Σχέδιο - CAD

Διδακτική Πληροφορικής

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Διοικητική Λογιστική

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Διδακτική Πληροφορικής

Βάσεις Περιβαλλοντικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Διδακτική Πληροφορικής

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Τεχνικό Σχέδιο - CAD

Διοικητική Λογιστική

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΔΙΟΙΚΗΣΗ ΔΙΕΘΝΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Διοικητική Λογιστική

Διδακτική Πληροφορικής

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Τεχνολογία Πολιτισμικού Λογισμικού

Τεχνολογία Πολιτισμικού Λογισμικού

Εισαγωγή στην Πληροφορική

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

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

Δομημένος Προγραμματισμός

Εισαγωγή στην Πληροφορική

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Βάσεις Περιβαλλοντικών Δεδομένων

Διοικητική Λογιστική

Διδακτική Πληροφορικής

Εισαγωγή στην Πληροφορική

Τεχνικό Σχέδιο - CAD

Ψηφιοποίηση και Ψηφιακή Επεξεργασία Εικόνας

Βάσεις Περιβαλλοντικών Δεδομένων

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διοικητική Λογιστική

Οργάνωση και Λειτουργία Ταξιδιωτικής Βιομηχανίας Ι

Δομημένος Προγραμματισμός

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ασφάλεια Πληροφοριακών Συστημάτων

Τεχνολογία Πολιτισμικού Λογισμικού

Τεχνικό Σχέδιο - CAD

ΠΕΡΙΒΑΛΛΟΝΤΙΚΗ ΠΟΛΙΤΙΚΗ & ΝΟΜΟΘΕΣΙΑ ΜΑΘΗΜΑ 1

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνικό Σχέδιο - CAD

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνικό Σχέδιο - CAD. Εισαγωγή στα Προγράμματα CAD. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Πληροφορική ΙΙ Θεματική Ενότητα 5

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Δομημένος Προγραμματισμός

Εισαγωγή στην Πληροφορική

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Προγραμματισμός Η/Υ. Αναζήτηση & Ταξινόμηση. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Εισαγωγή στην Πληροφορική

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ασφάλεια Πληροφοριακών Συστημάτων

Εισαγωγή στους Αλγορίθμους

Οργάνωση και Λειτουργία Ταξιδιωτικής Βιομηχανίας Ι

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Εισαγωγή στην Πληροφορική

Transcript:

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 8: Κληρονομικότητα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Αντικειμενοστραφής Προγραμματισμός Διάλεξη 8 Οικονόμου Βαγγέλης

Περιεχόμενα Κληρονομικότητα Υπερβαση μεθόδων Εικονικές Μέθοδοι

Κληρονομικότητα Ένα μεγάλο πλεονέκτημα του ΑΠ είναι ότι μια κλάση που δημιουργείτε για ένα πρόγραμμα μπορεί να χρησιμοποιηθεί και σε άλλα προγράμματα Επίσης, η C++ μας επιτρέπει να κατασκευάζουμε μια κλάση από μια άλλη Όταν κατασκευάζουμε μια κλάση από μια άλλη, η νέα τάξη κληρονομεί τα χαρακτηριστικά της αρχικής Η κληρονομικότητα μας βοηθάει να γράφουμε λιγότερα προγράμματα

Κληρονομικότητα Στόχος Α.Π.: Επαναχρησιμοποίηση μιας κλάσης, η κληρονομικότητα μας οδηγεί προς τα εκεί Καθώς φτιάχνουμε μια νέα τάξη μπορεί να χρησιμοποιεί (κληρονομεί) αρκετά χαρακτηριστικά από μια προϋπάρχουσα κλάση και να προσθέτει κάποια καινούργια Η νέα τάξη κληρονομεί τα μέλη της υπάρχουσας κλάσης (βασική κλάση base class) και ονομάζεται παράγωγη κλάση (derived class) Κληρονομικότητα είναι η δυνατότητα μιας παράγωγης τάξης να κληρονομεί τα χαρακτηριστικά μιας υπάρχουσας τάξης

Κληρονομικότητα Για να διευκολύνουμε τη συζήτηση σχετικά με την κληρονομικότητα θα εστιάσουμε στις σχέσεις ενός αριθμού κλάσεων που αναπαριστούν ζώα (παιχνίδι εξομοίωση ενός αγροκτήματος). Όταν δηλώνουμε μια κλάση, μπορούμε να δηλώσουμε και από ποιά κατηγορία απορρέει χρησιμοποιώντας τον τελεστή: Παράδειγμα: class Dog : public Mammal Η κλάση Mammal πρέπει να δηλωθεί πριν την κλάση Dog, αλλιώς θα προκληθεί σφάλμα στον μεταγλωττιστή

Κληρονομικότητα class Mammal{ public: Mammal(); ~Mammal(); int getage() const; void setage(int a); int getweight(); void setweight(int g); void Sleep(); protected: int age; int weight; };

Κληρονομικότητα class Dog : public Mammal{ public: Dog(); ~Dog(); int getcolor() const; void setcolor(int c); protected: int color; };

Κληρονομικότητα Τα private μέλη δε είναι διαθέσιμα στις απορρέουσες κλάσεις protected: κάνει διαθέσιμα τα δεδομένα στην τρέχουσα κλάση και στις κλάσεις που απορρέουν απο αυτήν Τα προστατευμένα μέλη είναι πλήρως ορατά στις απορρέουσες κλάσεις, αλλά για όλες τις άλλες είναι αόρατα.

Κληρονομικότητα int main() { Dog fido; fido.sleep(); cout<<"age of fido:"<<fido.getage()<<endl; cout<<"color of fido:"<<fido.getcolor()<<endl; return 0; } Παράδειγμα σε Visual C++!!!!!!!!

Κληρονομικότητα Τα αντικείμενα Dog είναι και αντικείμενα Mammal Όταν δημιουργούμε ένα αντικείμενο Dog καλείται πρώτα η συνάρτηση δημιουργίας της βασικής κλάσης Mammal και έπειτα η συνάρτηση δημιουργίας της παράγωγης κλάσης Dog για να ολοκληρωθεί το αντικείμενο τύπου Dog Το αντικείμενο fido δεν υπάρχει εώς ότου ολοκληρωθεί η δόμηση του, που σημαίνει ότι πρέπει να δημιουργηθούν και τα δύο του μέρη, Mammal και Dog

Κληρονομικότητα Εάν θέλαμε η κλάση Dog κατά τη δημιουργία ενός αντικειμένου της να θέτει τη δικιά της τιμή στο μέλος δεδομένων age τι θα κάναμε; Θα υπερφορτώναμε την συνάρτηση δημιουργίας

Κληρονομικότητα class Dog : public Mammal{ public: Dog(); Dog(int a); ~Dog(); int getcolor() const; void setcolor(int c); protected: int color; }; Dog::Dog(int a) { age = a; color=1; }

Κληρονομικότητα Υπέρβαση μεθόδων Ένα αντικείμενο Dog έχει πρόσβαση σε όλες τις μεθόδους και μέληδεδομένων της Mammal, όπως η Sleep. Μπορεί επίσης να υπερβεί μια συνάρτηση της βασικής κλάσης. Υπέρβαση μιας συνάρτησης σημαίνει αλλαγή της υλοποίησης της συνάρτησης στην απορρέουσα κλάση. Προσοχη: Υπέρβαση και Υπερφόρτωση. Αυτοί οι όροι μοιάζουν και κάνουν παρόμοια πράγματα, αλλά δε είναι το ίδιο πράγμα

Κληρονομικότητα Υπέρβαση μεθόδων class Dog : public Mammal{ public: Dog(); Dog(int a); ~Dog(); int getcolor() const; void setcolor(int c); void Sleep(); protected: int color; }; void Dog::Sleep() { cout<< Dog sleeping <<endl; }

Κληρονομικότητα Υπέρβαση μεθόδων Εάν έχουμε υπερβεί τη μέθοδο βάσης είναι ακόμα δυνατόν να την καλέσουμε, προσδιορίζοντας πλήρως το όνομα της Παράδειγμα: fido.mammal::sleep();

Εικονικές Μέθοδοι Μέχρι τώρα είδαμε ότι ένα αντικείμενο Dog είναι και αντικείμενο Mammal, με την έννοια ότι κληρονομεί όλα τα χαρακτηριστικά και ιδιότητες της κατηγορίας βάσης Η C++ επιτρέπει σε δείκτες της κλάσης βάσης να εκχωρούνται σε αντικείμενα της παράγωγης κλάσης Mammal *pm = new Dog; Τι κερδίζουμε με αυτό;

Εικονικές Μέθοδοι Υποθέστε ότι έχετε διάφορα αντικείμενα από διαφορετικές κλάσεις, αλλά θέλετε να τα βάλετε όλα σε έναν πίνακα και να εκτελέσετε σε αυτά κάποια συγκεκριμένη λειτουργία χρησιμοποιώντας την ίδια κλήση συνάρτησης. Παράδειγμα: cat, dog είναι όλα mammal και θέλουμε να καλέσουμε τη συνάρτηση Speak. Στον πίνακα εισάγουμε δείκτες πρός τα αντικείμενα μας και μετά καλούμε την συνάρτηση Διαφορετικές συναρτήσεις εκτελούνται από την ίδια κλήση συνάρτησης Mammal *patr[5]; for (i=0;i<;5i++) { patr[i]->speak(); }

Εικονικές Μέθοδοι Εικονική (virtual) σημαίνει ότι κάτι φαίνεται να υπάρχει αλλά στην πραγματικότητα δεν υπάρχει class Mammal{ public: Mammal(){age=1;} ~Mammal(){cout<<"Mammal destructor"<<endl;} void Move(){cout<<"move one step."<<endl;} virtual void Speak(){cout<<"Mammal speak"<<endl;} protected: int age; };

Εικονικές Μέθοδοι class Dog : public Mammal{ public: Dog(){}; ~Dog(){cout<<"Dog destructor."<<endl;} void Speak(){cout<<"Woof!!!"<<endl;} void Move(){cout<<"Move three steps."<<endl;} };

Εικονικές Μέθοδοι int main() { Mammal *pdog = new Dog; pdog->move(); pdog->speak(); }

Άσκηση Η παρακάτω άσκηση αναφέρεται στην χρήση στατικών μεταβλητών σε μια κλάση και στην έννοια της κληρονομικότητας. Μια στατική μεταβλητή ή συναρτηση «ανήκει» στην κλάση (ή την κατηγορία) και είναι κοινή για όλα τα αντικέιμενα αυτής της κλάσης. Έστω ότι θέλετε να σχεδιάσετε ένα παιχνίδι. Σε αυτό το παιχνίδι θα υπάρχουν 2 φυλές, οι Human (Άνθρωποι) και τα Elf (Ξωτικά). Προφανώς σε αυτες τις 2 φυλές θα υπάρχουν κοινά χαρακτηριστικά και χαρακτηριστικά που θα τις κάνουν να διαφέρουν. Στο παράδειγμα μας θα χρησιμοποιήσουμε ένα κοινό χαρακτηριστικό, τη ζωή (ή hit points), ενώ οι δυο φυλές διαφέρουν στο εξής: Τα Ξωτικά έχουν μαγική δύναμη ενώ οι Ανθρωποι έχουν φυσική δύναμη.

Άσκηση (συνέχεια) Δημιουργήστε μια κλάση με το όνομα Player, που θα είναι η κλαση βάσης. Η κλάση Player θα έχει ένα προστατεύομενο μέλος, τα hit_points, καθώς και μια στατική μεταβλητή τύπου ακέραιου (static int) που θα μετράει πόσοι πάικτες δημιουργηθήκαν. Υλοποιήστε τις παρακάτω συναρτήσεις της κλάσης Player: 1. Συναρτήσεις πρόσβασης για τo ιδιωτικό μέλος της κλάσης. 2. Μια συνάρτηση δημιουργίας, χωρίς ορίσματα που θα θέτει τα hit_points ίσον με το μηδέν και θα αυξάνει τη στατική μεταβλητή. Από την κλάση Player θα προκύπτουν οι κλάσεις Human και Elf. Η κλάση Human θα έχει μια ιδιωτική μεταβλήτη που θα εκφράζει την φυσική δύναμη (physical_power), ενώ η κλάση Elf θα έχει μια ιδιωτική μεταβλήτη που θα εκφράζει την μαγική δύναμη (magical_power). Δημιουργήστε συναρτήσεις δημιουργίας για αυτες τις 2 κλάσεις με 2 ορίσματα, όπως και συναρτήσεις πρόσβασης για τα ιδιωτικά μέλη τους. Επίσης, η κάθε κλάση θα έχει μια στατική μεταβλητή που θα μετράει πόσα Elfs και πόσοι Humans δημιουργήθηκαν.

Άσκηση (συνέχεια) Στην main συνάρτηση θα δηλώσετε 2 αντικείμενα τύπου Elf με τη βοήθεια δεικτων, όπου θα δώσετε τιμές μέσω των συναρτησεων δημιουργίας και θα εμφανιζετε στην οθόνη τις τιμές των μεταβλητών μέσω των συναρτήσεων πρόσβασης. Με παρόμοιο τρόπο θα δημιουργήσετε και ένα αντικέιμενο τύπου Human και θα κάνετε τις αντίστοιχες ενέργειες. Έπειτα, θα εμφανίσετe στην οθόνη πόσοι παίκτες δημιουργήθηκαν, πόσα Elfs και πόσοι Humans, δηλ. θα εμφανίσετε τις τιμές των τριών στατικών μεταβλητών στην οθόνη. Τέλος, θα διαγράψετε τους δείκτες που δημιουργήσατε.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/από-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.