[Tutor] COP vs OOP
Max Noel
maxnoel_fr at yahoo.fr
Tue Jan 18 01:36:56 CET 2005
On Jan 17, 2005, at 23:07, Bernard Lebel wrote:
> Okay... so if I follow you, a class that has methods not part of
> itself, it's not a static class...? So should I understand that a
> class that gets inherited methods can be considered OOP?
Not exactly. Basically, object-oriented programming is just that; that
is, working with objects, which are instances of classes.
Now, class methods/attributes, which I call "static" because that's
the C++/Java keyword that triggers them, are methods and attributes
that are shared by all the instances of that class, not specific to a
particular instance. The class doesn't even have to be instanciated (no
objects have to be created) for them to be used. They are effectively
part of the class itself, hence the name, class methods (as opposed to
instance methods).
A common use for class attributes is to keep track of how many times
the class has been instanciated (number of objects created).
So, if my class only has static methods and attributes, any object I
create with that class is empty: it has no attributes of its own, and
is impossible to be interacted with. Thus, you could just as well say
it doesn't exist, and that the class can't be used to create objects.
Therefore, you're using a class to do procedural programming.
However, the class has its separate namespace: when you're calling
methods from that class from outside its body, the call syntax is
Class.method(). Which is exactly the same thing as using a function
from Python module.
I hope that answers your question...
-- Max
maxnoel_fr at yahoo dot fr -- ICQ #85274019
"Look at you hacker... A pathetic creature of meat and bone, panting
and sweating as you run through my corridors... How can you challenge a
perfect, immortal machine?"
More information about the Tutor
mailing list