Wow, confusing explanations...
OOP is a really big topic with a lot of aspects to it. This is the way I think of the basics of OOP...
Functions do something to other things. Objects do things to themselves. Classes are a framework, or a way of creating objects. So we define a class 'Vehicle':
class Vehicle {
}
Now, this vehicle has a bunch of properties, and it can do things to itself.
function startVehicle () { }
function openDoor () { }
function closeDoor() { }
So first we need to make a new vehicle 'object' to work with, we do this by making a new instance of the object, using our Class ( our set of instructions for the object ):
$myVehicle = new Vehicle ();
Then we can make it do things:
$myVehicle -> startVehicle ();
$myVehicle -> openDoor ();
So essentially, instead of a function doing something to this vehicle, the vehicle has its own functions ( methods ) that do things to itself, that alter its own properties.
Then you can extend classes too. So we might have a class 'Bus' which is an extension of 'vehicle':
class Bus extends Vehicle {
}
This makes it so that a Bus is sort of an extension, or a subset of the Vehicle. With a Bus, you can startVehicle() to start the bus. You can openDoor() still. Then you might add other methods:
function jumpOverBridgeLikeInSPEED() { }
function punchOutEmergencyExitWindow() { }
So now your Bus can do all the things vehicle does, plus a few more specific Bus things.
Just kinda a different way of looking at things than Procedure, or Function oriented programming is. Theres lots more to it that I'll leave alone, too! Play with it and see what you come up with!
Oh, and for the record, Arc's shpeel on .DLL files has nothign to do with OOP. Yes, you might put classes in .DLL fiels if you were programming in C++, but we're not, so dont' worry about it. You can name your files anything you like! :-)
Oh, and include() has nothing to do with OOP either. Both C++ and PHP ( not sure on sucky VB :-) ) require you to create a new object pretty close to the same way:
C++
ClassName myNewObject = new ClassName ();
PHP
$myNewObject = new ClassName ();