100 likes | 104 Views
Object Oriented Design and Classes. What is a class?. Programming mechanism to support OOD Data and the methods that operate on that data – collectively called members Example: bank account class Provide structure for organizing programs. Methods. Methods operate on data
E N D
What is a class? • Programming mechanism to support OOD • Data and the methods that operate on that data – collectively called members • Example: bank account class • Provide structure for organizing programs
Methods • Methods operate on data • accessors – read data, provide access to data but do not change it • mutators – change data • examples from bank account, zoo • constructor – builds a new object • An object in an instance of a class • class is a blueprint for objects
BankAccount Class class BankAccount: def __init__(self, initial_balance): self.balance = initial_balance def deposit(self, amount): self.balance += amount def withdraw(self, amount): self.balance -= amount def checkBalance(self): print "Balance: ", self.balance
BankAccount Class def __init__(self, initial_balance): self.balance = initial_balance • __init__ method is the constructor • Used to initialize members of the object • First parameter is self – the object on which the method/constructor is called • Use dot notation (.) to reference members of the object
BankAccount Class def deposit(self, amount): self.balance += amount def withdraw(self, amount): self.balance -= amount • Deposit and withdraw are mutators • they modify the data member balance • First parameter is self • Like functions, methods can take any number of parameters
BankAccount Class def checkBalance(self): print "Balance: ", self.balance • checkBalance does not modify data members
Creating and Using Objects b = BankAccount(500) //Name = Type(constructor parameters)
Creating and Using Objects b = BankAccount(500) //Name = Type(constructor parameters) //how would you withdraw funds? b.withdraw(500) //object_name.method_name(params)
Composing Objects • An object can have a reference to another object class Name: def __init__(self, first, last): self.first = first self.last = last def printName(self): print "Name: ", self.first, " ", self.last class Employee: def __init__(self, first, last, pay): self.name = Name(first, last) self.pay = pay def printEmployee(self): self.name.printName() print "\tPay rate: ", self.pay