1. Weisfeld, M. (2019). The Object-Oriented Thought Process (5th ed.). Addison-Wesley Professional. Chapter 2, "How to Think in Terms of Objects," details encapsulation, inheritance, and polymorphism as fundamental OOP concepts.
2. MIT OpenCourseWare. (2016). 6.005 Software Construction, Reading 10: Abstract Data Types. Massachusetts Institute of Technology. Retrieved from ocw.mit.edu. This reading explains how abstract data types are the foundation for encapsulation and information hiding, central tenets of object-oriented design.
3. Stroustrup, B. (2013). The C++ Programming Language (4th ed.). Addison-Wesley. In Section 2.5, "Object-Oriented Programming," Stroustrup defines OOP through its support for data abstraction, encapsulation, and inheritance.