Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ. 210 414 2723 Ώρες Γραφείου: Τετάρτη 5-6 μμ.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ. 210 414 2723 Ώρες Γραφείου: Τετάρτη 5-6 μμ."— Μεταγράφημα παρουσίασης:

1 Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Email: mthemist@unipi.gr Ανδρούτσου 150 Γραφείο 206 Τηλ. 210 414 2723 Ώρες Γραφείου: Τετάρτη 5-6 μμ

2 Αντικειμενοστρεφής Προγραμματισμός Στην πληροφορική αντικειμενοστρεφή προγραμματισμό (object-oriented programming), ονομάζουμε ένα προγραμματιστικό υπόδειγμα που αντικατέστησε το παραδοσιακό υπόδειγμα του δομημένου προγραμματισμού. Πρόκειται για μία μεθοδολογία ανάπτυξης προγραμμάτων, όπου ο χειρισμός σχετιζόμενων δεδομένων και των διαδικασιών που επενεργούν σε αυτά γίνεται από κοινού, μέσω μίας δομής δεδομένων που τα περιβάλλει ως αυτόνομη οντότητα με ταυτότητα και δικά της χαρακτηριστικά. Τι είναι;

3 Αντικειμενοστρεφής Προγραμματισμός Αυτή η δομή δεδομένων καλείται αντικείμενο και αποτελεί πραγματικό στιγμιότυπο στη μνήμη ενός σύνθετου, και πιθανώς οριζόμενου από τον χρήστη, τύπου δεδομένων ονόματι κλάση. Η κλάση προδιαγράφει τόσο δεδομένα όσο και τις διαδικασίες οι οποίες επιδρούν επάνω τους Παραδείγματα γλωσσών προγραμματισμού: –Java –C++ –C# Τι είναι;

4 Αντικειμενοστρεφής Προγραμματισμός Ενθυλάκωση (Encapsulation) Κληρονομικότητα (Inheritance) Πολυμορφισμός (Polymorphism) Υπερφόρτωση (Overload) Υποσκέλιση (Override) Λογική Αφαίρεσης (Abstraction) Βασικά χαρακτηριστικά

5 Αντικειμενοστρεφής Προγραμματισμός Καλείται η ιδιότητα που προσφέρουν οι κλάσεις να «κρύβουν» τα ιδιωτικά δεδομένα τους από το υπόλοιπο πρόγραμμα και να εξασφαλίζουν πως μόνο μέσω των δημόσιων μεθόδων τους θα μπορούν αυτά να προσπελαστούν. Αυτή η τακτική παρουσιάζει μόνο οφέλη καθώς εξαναγκάζει κάθε εξωτερικό πρόγραμμα να φιλτράρει το χειρισμό που επιθυμεί να κάνει στα πεδία μίας κλάσης μέσω των ελέγχων που μπορούν να περιέχονται στις δημόσιες μεθόδους της κλάσης. Ενθυλάκωση (Encapsulation)

6 Αντικειμενοστρεφής Προγραμματισμός Ενθυλάκωση (Encapsulation) Παράδειγμα:

7 Αντικειμενοστρεφής Προγραμματισμός Ονομάζεται η ιδιότητα των κλάσεων να επεκτείνονται σε νέες κλάσεις, ρητά δηλωμένες ως κληρονόμους (υποκλάσεις ή 'θυγατρικές κλάσεις'), οι οποίες μπορούν να επαναχρησιμοποιήσουν τις μεταβιβάσιμες μεθόδους και ιδιότητες της γονικής τους κλάσης αλλά και να προσθέσουν δικές τους. Κληρονομικότητα (Inheritance)

8 Αντικειμενοστρεφής Προγραμματισμός Κληρονομικότητα (Inheritance) Παράδειγμα:

9 Αντικειμενοστρεφής Προγραμματισμός Ονομάζεται η παροχή μιας ενιαίας διεπαφής σε κλάσεις διαφορετικών τύπων. Επιτρέπει το χειρισμό τιμών διαφορετικών τύπων δεδομένων με χρήση μιας ομοιόμορφης διεπαφής. Η έννοια του παραμετρικού πολυμορφισμού εφαρμόζεται τόσο στους τύπους δεδομένων, όσο και στις συναρτήσεις (υπερφόρτωση). Πολυμορφισμός (Polymorphism)

10 Αντικειμενοστρεφής Προγραμματισμός Πολυμορφισμός (Polymorphism) Παράδειγμα:

11 Αντικειμενοστρεφής Προγραμματισμός Ονομάζεται η κατάσταση κατά την οποία υπάρχουν, στην ίδια ή σε διαφορετικές κλάσεις, μέθοδοι με το ίδιο όνομα και πιθανώς διαφορετικά ορίσματα. Αν πρόκειται για μεθόδους της ίδιας κλάσης διαφοροποιούνται μόνο από τις διαφορές τους στα ορίσματα και στον τύπο επιστροφής. Υπερφόρτωση (Overload)

12 Αντικειμενοστρεφής Προγραμματισμός Υπερφόρτωση (Overload) Παράδειγμα:

13 Αντικειμενοστρεφής Προγραμματισμός Ονομάζεται η κατάσταση κατά την οποία μία θυγατρική κλάση και η γονική της έχουν μία μέθοδο ομώνυμη και με τα ίδια ορίσματα. Χάρη στη δυνατότητα του πολυμορφισμού ο μεταγλωττιστής «ξέρει» πότε να καλέσει ποια μέθοδο, βασισμένος στον τύπο του τρέχοντος αντικειμένου. Δηλαδή πολυμορφισμός είναι η δυνατότητα των αντικειμενοστρεφών μεταγλωττιστών να αποφασίζουν δυναμικά ποια είναι η κατάλληλη να κληθεί μέθοδος σε συνθήκες υποσκέλισης. Υποσκέλιση (Override)

14 Αντικειμενοστρεφής Προγραμματισμός Υποσκέλιση (Override) Παράδειγμα:

15 Αντικειμενοστρεφής Προγραμματισμός Η αφαίρεση είναι η έννοια που περιγράφει κάτι με πιο απλούς όρους. Η ίδια λογική υπάρχει και στον αντικειμενοστρεφή προγραμματισμό χρησιμοποιώντας ιεραρχία κληρονομικότητας. Έτσι, ορισμένα αφαιρετικά μοντέλα βρίσκονται στην κορυφή της ιεραρχίας και κατεβαίνοντας υπάρχουν πιο συγκεκριμένα μοντέλα. Στο πιο αφηρημένο επίπεδο δεν υπάρχουν λεπτομέρειες εφαρμογής, οι οποίες προστίθενται καθώς η αφαίρεση μειώνεται. Λογική Αφαίρεσης (Abstraction)

16 .Net framework Είναι μια πλατφόρμα λογισμικού που αναπτύχθηκε από την Microsoft και τρέχει κυρίως σε Windows περιβάλλοντα. Περιλαμβάνει ένα μεγάλο σύνολο από βιβλιοθήκες, γνωστό ως Framework Class Library (FCL), που περιέχει έτοιμα εργαλεία (components) για την ευκολότερη ανάπτυξη εφαρμογών. –Μερικά παραδείγματα είναι: Εργαλεία κατασκευής διεπαφών χρήστη (user interfaces), εργαλεία πρόσβασης σε βάσεις δεδομένων, εργαλεία κρυπτογράφησης, εργαλεία σύνδεσης σε δίκτυα, εργαλεία ανάπτυξης εφαρμογών διαδικτύου, κ.α. Τι είναι;

17 .Net framework Προσφέρει γλωσσική διαλειτουργικότητα (κάθε γλώσσα μπορεί να χρησιμοποιήσει κώδικα γραμμένο σε άλλη γλώσσα). Τα προγράμματα που είναι γραμμένα στο.Net framework εκτελούνται σε ένα προγραμματιστικό περιβάλλον, γνωστό ως Common Language Runtime (CLR), όπου είναι μια εικονική μηχανή εκτέλεσης εφαρμογών που προσφέρει υπηρεσίες όπως ασφάλεια, διαχείριση μνήμης και διαχείριση εξαιρέσεων. Το FCL και το CLR αποτελούν το.Net framework. Τι είναι;

18 .Net framework Γραφική απεικόνιση

19 Η ιστορία της C# Στα τέλη της δεκαετίας του '70 το μέγεθος των έργων που υλοποιούσαν οι προγραμματιστές με τη C έφτασε στα όρια του. Έτσι εμφανίστηκε ένας νέος τρόπος προγραμματισμού, ο αντικειμενοστρεφής προγραμματισμός (Object Oriented Programming- OOP) και μία νέα γλώσσα, η αντικειμενοστρεφής γλώσσα C++. Από τη C στη C++

20 Η ιστορία της C# Λόγω της μεγάλης διάδοσης του internet οι προγραμματιστές επιθυμούσαν να μεταφέρουν τον κώδικά τους σε διαφορετικά περιβάλλοντα. Αυτό δεν μπορούσε να γίνει με τη C++, οπότε δημιουργήθηκε η αντικειμενοστρεφής γλώσσα προγραμματισμού Java, η οποία έλυνε 2 βασικά προβλήματα. Από τη C++ στη Java

21 Η ιστορία της C# Βασικά προβλήματα που επιλύθηκαν: Μεταφερσιμότητα: Mετάφραση του πηγαίου κώδικα στην ενδιάμεση γλώσσα bytecode και στη συνέχεια εκτέλεση αυτού του κώδικα στην εικονική μηχανή της Java (Java Virtual Machine - JVM). Έτσι, ο κώδικας μπορούσε να εκτελεστεί σε οποιαδήποτε περιβάλλον διέθετε εικονική μηχανή Java. Ασφάλεια: Επειδή ο JVM τρέχει τον κώδικα bytecode, έχει τον πλήρη έλεγχο του προγράμματος έτσι ώστε να μπορεί να αποτρέψει οποιαδήποτε κακόβουλη ενέργεια ενός Java προγράμματος. Από τη C++ στη Java

22 Η ιστορία της C# Αν και η Java έλυσε 2 βασικά προβλήματα, της λείπουν ακόμη 2 χαρακτηριστικά: –Γλωσσική διαλειτουργικότητα: Για τη δημιουργία μεγάλων κατανεμημένων συστημάτων λογισμικού χρειάζεται ο κώδικας που παράγεται από μία γλώσσα να συνεργάζεται με κώδικα που παράγει μια δεύτερη γλώσσα. –Πλήρης ενσωμάτωση με τα Windows: Η java, αν και μπορεί να εκτελεστεί κάτω από τα Windows, δεν συνδέεται στενά με αυτά, σε αντίθεση με τη C#. Από τη C++ στη C#

23 Η δημιουργία της C# Σύνταξη –Κοινή όπως { } και ; –αλλά και διαφορές όπως. αντί ->. Λέξεις κλειδιά –If, else, switch, case, for, while, class Τελεστές –+, -, *, /, =, ==, !=, ++, -- Χαρακτηριστικά της C που κληρονόμησε η C#

24 Η δημιουργία της C# Μεταφερτός κώδικας Εκτέλεση προγραμμάτων σε ασφαλές περιβάλλον Αντικειμενοστρεφής προγραμματισμός –Κλάσεις – Classes –Πεδία και Μέθοδοι – Fields and Methods –Απλή κληρονομικότητα – Single Inheritance –Εξαιρέσεις – Exceptions –Διεπαφές – Interfaces Σχέση Java και C#

25 Δημιουργία του πρώτου προγράμματος σε C# /* HelloWorld.cs */ using System; class HelloWorld { // Κάθε πρόγραμμα στη C# ξεκινά με την κλήση της μεθόδου Main() static void Main(string[] args) { Console.WriteLine("Hello World!"); }


Κατέβασμα ppt "Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ. 210 414 2723 Ώρες Γραφείου: Τετάρτη 5-6 μμ."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google