Leanpub Header

Skip to main content

Mastering Object-Oriented Philosophy and Programming with Python, Java, and C# Side-by-Side

Master the philosophy of object-oriented programming before mastering its syntax. Discover how Python, Java, and C# bring objects, classes, inheritance, polymorphism, and the complete object lifecycle to life through a unique side-by-side approach.

Minimum price

$29.00

$39.00

You pay

Author earns

$

Also available for 2 book credits with a Reader Membership

PDF
About

About

About the Book

Object-oriented programming is far more than a programming technique, it is a way of thinking about software. It provides the conceptual foundations for modeling complex systems, organizing software into reusable components, and designing applications that are robust, maintainable, and scalable.

In this second volume of the Side-by-Side Programming Series, readers progressively discover the philosophy, principles, and implementation mechanisms that underpin modern object-oriented software development. Rather than treating Python, Java, and C# as three independent languages, the book presents them through a synchronized side-by-side approach that reveals both their shared object-oriented foundations and their language-specific characteristics.

Beginning with the concepts of objects and classes, the book explores the four fundamental principles of object-oriented programming : encapsulation, abstraction, inheritance, and polymorphism before examining the essential building blocks of every class, including variables, methods, constructors, access control mechanisms, and predefined libraries. The discussion then moves beyond software design to explain how classes become executable objects, how runtime environments create and initialize those objects, and how constructors establish valid object states.

Unlike most introductory books, this volume also follows software objects beyond their creation. Readers gain a clear understanding of the complete object lifecycle, including runtime execution, object interaction, automatic memory management, garbage collection, and deterministic resource management across Java, C#, and Python. By studying not only how objects are designed but also how they live and eventually disappear during program execution, readers develop a deeper understanding of the mechanisms that govern modern object-oriented systems.

Richly illustrated with numerous diagrams, comparative tables, execution models, and real-world examples, this book transforms abstract concepts into intuitive mental models while emphasizing both conceptual understanding and practical implementation. It is intended for university students, instructors, software developers, engineers, and self-directed learners seeking a rigorous yet accessible introduction to object-oriented programming.

Whether your goal is to master object-oriented thinking, compare Python, Java, and C# in a unified framework, or prepare for advanced software engineering topics, this volume provides the conceptual depth and practical knowledge needed to build reliable, reusable, and professional software systems.

Share this book

Author

About the Author

Aimé Mbobi, Ph.D.

Aimé M. Mbobi, Ph.D., is a telecommunications engineer, computer scientist, professor, researcher, technology executive, and author with more than three decades of experience in higher education, research, and the ICT industry. He holds degrees from IMT Nord Europe, the University of Lille, the École des Mines de Paris, and Paris-Saclay University. His work focuses on programming, software engineering, telecommunications, artificial intelligence, scientific computing, data structures and algorithms, numerical methods, and applied mathematics. Through his books, he seeks to combine rigorous academic foundations, comparative analysis, and real-world industrial experience to help learners develop strong technical and problem-solving skills.

Contents

Table of Contents

Table of Contents

  • Preface
  • How This Book Is Organized
  • Roadmap of the Book
  • Chapter 1 - Theoretical Approach to Object-Oriented Paradigm
    • 1.1 Introduction
    • 1.2 General Definition of an Object
    • 1.3 Definition of an Object in Software Development
    • 1.4 Object Composition in Software Development
    • 1.5 Attributes
    • 1.6 Internal State and Behavior of an Object
    • 1.7 Mathematical Modeling of Objects
    • 1.8 Chapter Summary
    • 1.9 Chapter Reinforcement
  • Chapter 2 - Classes and Objects
    • 2.1 Introduction
    • 2.2 Classes
    • 2.3 Communication between Objects
    • 2.4 Principles of Object-Oriented Design and Programming
    • 2.5 Chapter Summary
    • 2.6 Chapter Reinforcement
  • Chapter 3 - Principle of Encapsulation
    • 3.1 Introduction
    • 3.2 Concept of Encapsulation
    • 3.3 Key Objectives of Encapsulation
    • 3.4 Encapsulation in Scientific Terms
    • 3.5 Object State and Encapsulation
    • 3.6 Encapsulation of Behavior
    • 3.7 Encapsulation and Controlled Access to Object Data
    • 3.8 Structural Representation of Encapsulation in Object-Oriented Design
    • 3.9 Understanding Encapsulation Through a Concrete Example: The Banking Account
    • 3.10 Encapsulation as a Foundation for Abstraction
    • 3.11 Chapter Summary
    • 3.12 Chapter Reinforcement
  • Chapter 4 - Principle of Abstraction
    • 4.1 Introduction
    • 4.2 Definition of Abstraction
    • 4.3 Key Objectives of Abstraction
    • 4.4 Abstraction in Scientific Terms
    • 4.5 Fundamental Questions Addressed by Abstraction
    • 4.6 Abstraction and Object Interfaces
    • 4.7 Understanding Abstraction Through a Bank Account Object
    • 4.8 Benefits of Abstraction
    • 4.9 Abstraction in Everyday Life
    • 4.10 Relationship Between Abstraction and Encapsulation
    • 4.11 Chapter Summary
    • 4.12 Chapter Reinforcement
  • Chapter 5 - Principle of Inheritance
    • 5.1 Introduction
    • 5.2 Definition of Inheritance
    • 5.3 Key Objectives of Inheritance
    • 5.4 Inheritance in Scientific Terms
    • 5.5 Fundamental Concepts of Inheritance
    • 5.6 Inheritance and Code Reuse
    • 5.7 Inheritance Hierarchies
    • 5.8 Understanding Inheritance Through a Vehicle Hierarchy
    • 5.9 Benefits of Inheritance
    • 5.10 Inheritance in Everyday Life
    • 5.11 Relationship Between Inheritance and Polymorphism
    • 5.12 Chapter Summary
    • 5.13 Chapter Reinforcement
  • Chapter 6 - Principle of Polymorphism
    • 6.1 Introduction
    • 6.2 Definition of Polymorphism
    • 6.3 Key Objectives of Polymorphism
    • 6.4 Polymorphism in Scientific Terms
    • 6.5 Fundamental Concepts of Polymorphism
    • 6.6 How Polymorphism Works
    • 6.7 Relationship Between Inheritance and Polymorphism
    • 6.8 Benefits of Polymorphism
    • 6.9 Polymorphism in Everyday Life
    • 6.10 Relationship Between the Four OOP Principles
    • 6.11 Chapter Summary
    • 6.12 Chapter Reinforcement
  • Chapter 7 - Object-Oriented Variables in Java, C#, and Python
    • 7.1 Introduction
    • 7.2 Components of a Class
    • 7.3 Variables
    • 7.4 Chapter Summary
    • 7.5 Chapter Reinforcement
  • Chapter 8 - Object-Oriented Methods and Constructors in Java, C#, and Python
    • 8.1 Introduction
    • 8.2 Methods
    • 8.3 Constructors
    • 8.4 Accessors and Mutators
    • 8.5 Chapter Summary
    • 8.6 Chapter Reinforcement
  • Chapter 9 - Predefined Classes and Methods in Java, C#, and Python
    • 9.1 Introduction
    • 9.2 Predefined Classes in Java, C# and Python
    • 9.3 Predefined Methods in Java, C# and Python
    • 9.4 Chapter Summary
    • 9.5 Chapter Reinforcement
  • Chapter 10 - From Class Specification to Object Creation
    • 10.1 Introduction
    • 10.2 From Blueprint to Reality
    • 10.3 Class Specification
    • 10.4 Class Declaration
    • 10.5 Class Definition
    • 10.6 From Class to Object
    • 10.7 Object Creation Overview
    • 10.8 Chapter Summary
    • 10.9 Chapter Reinforcement
  • Chapter 11 - Runtime Object Creation in Java, C#, and Python
    • 11.1 Introduction
    • 11.2 From Class Definition to Runtime Object
    • 11.3 Object Instantiation
    • 11.4 Object Initialization
    • 11.5 Requirements for Successful Object Creation
    • 11.6 Chapter Summary
    • 11.7 Chapter Reinforcement
  • Chapter 12 - Constructors in Java, C#, and Python
    • 12.1 Introduction
    • 12.2 The Concept of Constructors
    • 12.3 Constructors in Java, C#, and Python
    • 12.4 Types of Constructors
    • 12.5 Constructor Chaining Across Programming Languages
    • 12.6 Constructor Overloading
    • 12.7 Chapter Summary
  • Chapter 13 - Object Lifetime and Memory Management in Java, C#, and Python
    • 13.1 Introduction
    • 13.2 Object Lifetime
    • 13.3 Object Utilization
    • 13.4 Receiving Messages
    • 13.5 Executing Methods
    • 13.6 State Evolution During Execution
    • 13.7 Collaboration Between Objects
    • 13.8 Reachability
    • 13.9 Automatic Memory Management
    • 13.10 Chapter Summary
    • 13.11 Chapter Reinforcement
  • About the Author
  • The Side-by-Side Programming Series
  • Author’s Publishing Collections

Get the free sample chapters

Click the buttons to get the free sample in PDF or EPUB, or read the sample online here

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $15 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub