Class, Attribute, Method, and Object
Make sure you read Part 1 and Part 2 before you continue reading...Let continue from where we stopped in Part 2.
We are about to model our car object in python code. So basically, we use the combinations of "Class", "Attribute", "Method", and "Object" to model a real world object into software code.
Lets recall the definitions for: Class, Attribute, Method, and Object
Class: A user-defined prototype/blueprint for an object that defines a set of attributes that characterize any object of the class.
The reason of creating a "class" is so we can create our own objects that have their attribute to do specific thing.
A "class" is created in python just by calling the class keyword follow by its name and a colon ( : ) at the end as seen below.
class ClassName: pass
Now within this class, we need to define the "Attributes" and "Methods" of our Car "Object". But before then, lets use an arbitrary example.
Attribute: A variable that is defined inside class (class attribute/variable) or inside a method (instance attribute/variable).
Method: A special kind of function that is defined in a class definition.
Lets add some attributes and methods to our arbitrary class above before we relate it to our "Car" object.
class ClassName: att1 = "Umar Yusuf" att2 = 24 def mthd_one(self): att3 = "An instance attribute in Method_One" print att3 def mthd_two(self): self.att4 = "An instance attribute in Method_Two" print self.att4
att1 and att2 are the class attributes
att3 and att3 are the method/instance attributes
mthd_one and mthd_two are the methods
If you observe the code, you will notice a strange word "Self" supplied as an argument in the methods. I will explain why that "self" in the next part 4.
The last but not the least is for us to utilize the class we created in the form of object. So lets create objects out of the class above, remember the definition of object?
Object: A unique instance/copy of a data structure that's defined by its class.
To create an object, we simply assign a variable to the class name as seen below. And to access the class attributes and methods, we simply use to dot notation by calling the object dot name of attribute or method that is: [object.attribute or object.method()] as seen below.
# To create an object "s" from the class obj1 = ClassName() # To access the class attributes print obj1.att1 print obj1.att2 # To access the methods and their attributes obj1.mthd_one() obj1.mthd_two() # Note: a method/instance attribute can NOT be accessed outside the method directly
Now, relating the knowledge above to our "Car" objects;-
Car 1
brand = Toyota
speed = 250km/hr
height = 1908mm
weight = 2800kg
colour = Green
Car 2
brand = Honda
speed = 180km/hr
height = 1500mm
weight = 3200kg
colour = Cyan
Car 3
brand = Ford
speed = 300km/hr
height = 2200mm
weight = 4200kg
colour = Red
Car 1, Car 2, and Car 3: activateHorn, moveForward, moveBack, turnRight, turnLeft are the methods to be used.
Our code should look like this for object Car 1:-
class Cars: # Create and Set the class attributes to empty string or None keyword, # since we have multi car objects to instanciate brand = None brand = None speed = None height = None weight = None colour = None # Create the methods with simple "print" statement in them def activateHorn(self): print ( self.brand + " Says: Poooooooorh!") def moveForward(self): print ( self.brand + " Moving Forward at the speed of: " + self.speed) def moveBack(self): print ( self.colour + " " + self.brand + " is Moving Backward!") def turnRight(self): print ("Turning Right!") def turnLeft(self): print ("Turning Left!") # First object car1 car1 = Cars() # Assign the attributes value of car1 object car1.brand = "Toyota" car1.speed = "250km/hr" car1.height = "1908mm" car1.weight = "2800kg" car1.colour = "Green" # Call any of the methods to see result car1.moveForward() car1.activateHorn() car1.moveBack() car1.turnRight() car1.turnLeft()
To create the second and third objects (Car 2 and Car 3) from the instance of the class Cars, all we have to do is assign object instance to the class name just the way we did above for Car 1 object. Here is the code:-
# Second object car2 car2 = Cars() # Assign the attributes value of car2 object car2.brand = "Honda" car2.speed = "180km/hr" car2.height = "1500mm" car2.weight = "3200kg" car2.colour = "Cyan" # Call any of the methods to see result car2.activateHorn() # Third object car3 car3 = Cars() # Assign the attributes value of car3 object car3.brand = "Ford" car3.speed = "300km/hr" car3.height = "2200mm" car3.weight = "4200kg" car3.colour = "Red" # Call any of the methods to see result car3.activateHorn()
This a very basic and manual way of coding in Python OOP style. In the next Part 4 we will see how to improve the above code to be more dynamic and uses less codes.
Reference Materials are here
No comments:
Post a Comment