Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What might be a good Object Oriented Programming book that can give a good, solid foundation in OOP? [closed]

Tags:

oop

I was reading this paper from Apple:

http://developer.apple.com/library/mac/documentation/cocoa/conceptual/OOP_ObjC/OOP_ObjC.pdf

where it talks about OOP which I never heard before. I graduated in computer science around 1991, before OOP becoming popular, so the use of OOP was merely defining some classes, and then calling the methods, that's it. Objects didn't interact with each other -- everything was done in a main function that calls the various objects' methods.

Until I read the paper above, which talks about Interface, dynamic typing, dynamic binding, that an object can send another object a message, even before the second object is invented -- only the "interface", or the message, needs to be well defined. The second object can have unknown data type as of right now, to be invented in the future, but all it needs to do is to understand the "message".

So this way, each object interacts with one another, and each object may have a list of "outlets" which are the relationship it has with the outside world, and the object will interact with the outlets by sending them messages, and those objects, when getting a message, can in turn send back a messages to the sender. (send a message to an object = call the object's method).

I think this sort of opened my eye for OOP, much more than even the Design Pattern book by the Gang of Four. The Apple paper didn't cite any source, but I wonder it might follow some methodology from a book? Does any OOP book give a good, solid foundation in OOP which is what the Apple paper is talking about?

like image 882
nonopolarity Avatar asked Mar 30 '11 09:03

nonopolarity


People also ask

What is the best object-oriented programming language?

Java. Java is a high-level object-oriented programming language, which is widely used for web development, enterprise applications, mobile app development, and distributed computing.

What are the main 3 Object-Oriented Programming OOP concepts?

The main ideas behind Java's Object-Oriented Programming, OOP concepts include abstraction, encapsulation, inheritance and polymorphism. Basically, Java OOP concepts let us create working methods and variables, then re-use all or part of them without compromising security.

What are the four foundations of object-oriented design?

Object-oriented programming has four basic concepts: encapsulation, abstraction, inheritance and polymorphism.


2 Answers

Nice introduction to OOP is "Coffee maker" (and quite short).

I personally really enjoy reading "Object thinking".

Another interesting book is "Domain-Driven Design: Tackling Complexity in the Heart of Software".

Next in my to-read list is "Object Design: Roles, Responsibilities, and Collaborations".

like image 117
Arnis Lapsa Avatar answered Oct 15 '22 03:10

Arnis Lapsa


Try Elegant Objects (I'm the author). It is rather practical and, at the same time, pays a lot of attention to the theory. You must have some programming experience beforehand though.

enter image description here

like image 21
yegor256 Avatar answered Oct 15 '22 04:10

yegor256