Objects are instances of Classes. Classes are like the blue prints of a house. Objects are actual houses built using the blue print.
Classes allows you to encapsulate functionalities and relevant properties. The hard question is often where to draw the class boundary, i.e. how do you decide this functionality belong in one class and not another? Depending on the development methodology and the type of application you are writing, you may not care.
Well designed classes encourages reuse. Couple with other features of OO e.g. Inheritance you can build powerful reusable and extendable frameworks. The Dot Net framework is a true testament of this.
I don't know of any good materials, the best way to learn is probably to start your own toy project and get stuck into it. Build a Wiki or something.
Thanks for the reply. This is beginning to make sense.
So if I wrote an application to track site visits to customers, then I could write a class called customers and that class would have certain functions, routines and properties that I could call over and over?