title: Object Oriented Programming: Concepts and Techniques
title: Illustrating them by using C++ and Java
titleType: AlternativeTitle
title: Αντικειμενοστραφής Προγραμματισμός: Έννοιες και Τεχνικές
title: Ανάδειξή τους με C++ και Java
titleType: AlternativeTitle
Creators: name: Karali, Isambo
Publisher: name: Kallipos, Open Academic Editions
Year: 2023
Subjects: Κλάση
Αντικείμενο
Αφαίρεση δεδομένων
Κληρονομικότητα
Πολυμορφισμός
Απόκρυψη πληροφορίας
Εγκλωβισμός
Εμβέλεια
Στοιχειοποίηση
επαναχρησιμοποίηση
τύποι ορισμένοι από τον χρήστη
Γλώσσα προγραμματισμού C++
Γλώσσα προγραμματισμού Java
Διαδικαστικός προγραμματισμός
Class
Object
Data abstraction
Inheritance
Polymorphism
Information hiding
Encapsulation
Scope
Modularity
reusability
user defined types
C++ programming language
Java programming language
Procedural programming
Γλώσσες αντικειμενοστραφούς προγραμματισμού
Object oriented programming languages

description: The book is mainly aimed at undergraduate students who study object oriented programming for the first time. It assumes that the reader is familiar with procedural programming, though. First, the concepts of object oriented programming, the required mechanisms and the paradigm properties are presented, independently of a specific programming language. The aim is to highlight the concepts’ universality. The book, then, focuses on the C++ language, presenting the above using C++. It begins by summarizing procedural programming constructs, with an emphasis on specialized ones. Then, the concept of names’ scope is analyzed, stepping towards data abstraction. Talking about data abstraction, the one of the two main areas in object oriented programming, class and object definitions are discussed, as well as related topics such as visibility declarations to hide implementation details, constructors and destructors of objects as well as object assignments. Class composition is separately discussed. Next, a thorough presentation of the second important area in object-oriented programming, which is inheritance, follows. The C++ related topics are completed by some other class related issues of the language that are considered worth mentioning. Emphasis is put on static class members, which allow a smooth transition from the C++ to the Java language. C++'s input/output system is outlined, also as an interesting example of using object oriented programming. Generic programming is also briefly presented. The book then switches to the Java language and presents its object oriented features. Next, there is a summary of object oriented characteristics of other object oriented programming languages, not necessarily procedural. The book concludes with complex problems, both for personal engagement and practice but also as appropriate examples where the use of object oriented programming is needed.
description: Το βιβλίο απευθύνεται κυρίως σε προπτυχιακούς φοιτητές που έρχονται για πρώτη φορά σε επαφή με τον αντικειμενοστραφή προγραμματισμό. Προϋποθέτει βασική γνώση του διαδικαστικού προγραμματισμού. Αρχικά, παρουσιάζονται οι έννοιες του αντικειμενοστραφούς προγραμματισμού, οι μηχανισμοί που απαιτούνται για την υποστήριξή του, καθώς και οι ιδιότητές του, ανεξάρτητα από συγκεκριμένη γλώσσα προγραμματισμού. Ο στόχος είναι να αναδειχθεί η καθολικότητά τους. Στη συνέχεια, το βιβλίο εστιάζεται στη γλώσσα C++, παρουσιάζοντας τα παραπάνω μέσω της γλώσσας αυτής. Ξεκινά συνοψίζοντας την υποστήριξη διαδικαστικού προγραμματισμού, με έμφαση σε εξειδικευμένες γλωσσικές δομές της C++. Κατόπιν, συζητιέται η έννοια της εμβέλειας, πηγαίνοντας σταδιακά στην αφαίρεση στα δεδομένα. Κατά την παρουσίαση της αφαίρεσης στα δεδομένα, το ένα από τα δύο βασικά θέματα στον αντικειμενοστραφή προγραμματισμό, αναπτύσσεται η δυνατότητα ορισμού κλάσεων και αντικειμένων, καθώς και σχετιζόμενα θέματα, όπως οι περιορισμοί ορατότητας για απόκρυψη λεπτομερειών υλοποίησης, οι λειτουργίες κατά τη δημιουργία και κατά την καταστροφή των αντικειμένων, αλλά και η λειτουργία κατά την ανάθεση αντικειμένων. Ακολουθεί ξεχωριστή συζήτηση για τη σύνθεση κλάσεων. Στη συνέχεια, γίνεται συζήτηση σχετικά με το δεύτερο βασικό θέμα στον αντικειμενοστραφή προγραμματισμό, που είναι η κληρονομικότητα. Η ενασχόληση με τη C++ ολοκληρώνεται με παρουσίαση επιπλέον γλωσσικών στοιχείων που είναι σχετικά με τις κλάσεις. Ιδιαίτερη έμφαση δίνεται στα στατικά μέλη κλάσεων, που επιτρέπει ομαλή μετάβαση από τη γλώσσα C++ στη γλώσσα Java. Το σύστημα εισόδου/εξόδου της C++ αναφέρεται και ως ενδιαφέρον παράδειγμα χρήσης του αντικειμενοστραφούς προγραμματισμού. Γίνεται, επίσης, μια αναφορά στον προγραμματισμό γενικεύσεων. Κατόπιν, το βιβλίο στρέφεται στη γλώσσα Java και γίνεται παρουσίαση των αντικειμενοστραφών χαρακτηριστικών της. Ακολουθεί σύνοψη αντικειμενοστραφών στοιχείων από άλλες γλώσσες αντικειμενοστραφούς προγραμματισμού, όχι απαραίτητα διαδικαστικές. Το βιβλίο κλείνει με σύνθετα προβλήματα, τόσο για προσωπική ενασχόληση και εξάσκηση, αλλά και ως κατάλληλα παραδείγματα ανάγκης χρήσης του αντικειμενοστραφούς προγραμματισμού.