This text describes a practical approach to object-oriented programming and design. After explaining the basic concepts of object-orientation, the book shows with numerous examples how this technique can be used to write well-structured software. It discusses typical design patterns and shows implementation techniques for frequently occurring problems to be solved with object-oriented programming. Although it is possible to explain the basic concepts with small examples, it is necessary to study large and realistic applications in order to understand the power and elegance of this new technique. Therefore the book contains the design and full source code of a realistic case study - a window system with extensible text and graphics editors. The programming language used in this book is Oberon-2, the latest offspring of the PASCAL and MODULA-2 family of languages.
This is by far one of the best OOP books I've ever read. The explanation is clear, the examples are plenty and you can learn a lot of techniques and also design patterns from them. The author really knew what he was doing and I appreciate him for writting such a great book.