Object Oriented Programming

Logo with text {OOP}
Logo with text {OOP}

Object-Oriented Programming (OOP) is a model of programming that uses Objects as representation of data and the data's properties. Objects can be defined as fields of data with unique properties, or attributes and methods (functions). At its heart, object-oriented programming is a mindset which respects programming as a problem-solving dilemma on a grand scale that requires careful application of abstractions and subdividing problems into manageable pieces. Compared to procedural programming, a superficial examination of code written in both styles would reveal that object-oriented code tends to be broken down into vast numbers of small pieces, with the hope that each piece will be trivially verifiable. OOP was one step towards the holy grail of software re-usability, although no new term has gained widespread acceptance, which is why "OOP" is used to mean almost any modern programming distinct from systems programming, assembly programming, functional programming, or database programming. Modern programming would be better categorized as "multi-paradigm" programming, and that term is sometimes used. This book is primarily aimed at modern, multi-paradigm programming, which has classic object oriented programming as its immediate predecessor and strongest influence.

Historically, "OOP" has been one of the most influential developments in computer programming, gaining widespread use in the mid 1980s. Originally heralded for its facility for managing complexity in ever-growing software systems, OOP quickly developed its own set of difficulties. Fortunately, the ever evolving programming landscape gave us "interface" programming, design patterns, generic programming, and other improvements paving the way for more contemporary Multi-Paradigm programming. While some people will debate endlessly about whether or not a certain language implements "Pure" OOPand bless or denounce a language accordinglythis book is not intended as an academic treatise on object oriented programming or its theory.

Instead, we aim for something more pragmatic: we start with basic OO theory and then delve into a handful of real-world languages to examine how they support OO programming. Since we obviously cannot teach each language, the point is to illustrate the trade-offs inherent in different approaches to OOP.

Although OOP is quite complex to beginners it becomes easy when you first fully understand what pillars the concept of OOP is built on.

Table Of Contents

Category:Books with print version#Object%20Oriented%20Programming Category:Subject:Computer programming languages/all books Category:Subject:Computer programming/all books Category:Subject:Computer science/all books Category:Subject:Computing/all books Category:Subject:Books by subject/all books Category:Subject:Computing/all books Category:Subject:Books by subject/all books Category:Book:Object Oriented Programming#%20 Category:Book:Wikibooks Stacks/Books#Object%20Oriented%20ProgrammingCategory:Shelf:Computer programming languages Category:Shelf:Computer programming languages/all books Category:Shelf:Computer programming/all books#Computer%20programming Category:Shelf:Computer science/all books#Computer%20science Category:Department:Computing/all books#Computing Category:Half-finished booksCategory:Books by completion status/all books
Category:Book:Object Oriented Programming Category:Book:Wikibooks Stacks/Books Category:Books by completion status/all books Category:Books with print version Category:Department:Computing/all books Category:Half-finished books Category:Shelf:Computer programming/all books Category:Shelf:Computer programming languages Category:Shelf:Computer programming languages/all books Category:Shelf:Computer science/all books Category:Subject:Books by subject/all books Category:Subject:Computer programming/all books Category:Subject:Computer programming languages Category:Subject:Computer programming languages/all books Category:Subject:Computer science/all books Category:Subject:Computing/all books