Chapter 9 Classes and Object Oriented Programming STARTING

Chapter 9 Classes and Object Oriented Programming STARTING OUT WITH Python First Edition by Tony Gaddis Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

9. 1 Procedural and Object-Oriented Programming Concept: Procedural programming is a method of writing software. It is a programming practice centered on the procedures or actions that take place in a program. Object-oriented programming is centered on objects. Objects are created from abstract data types that encapsulate data and function together. 1 -2 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -2

9. 1 Procedural and Object-Oriented Programming Two methods of programming: • Procedural • Object-oriented 1 -3 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -3

9. 1 Procedural and Object-Oriented Programming Procedural programming is made up of one or more procedures • Procedures operate on data items that are separate from the procedure • Data items are passed from one procedure to another • Focus is on the creation of procedures that operate on the program’s data 1 -4 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -4

9. 1 Procedural and Object-Oriented Programming Object-oriented programming is a self-contained unit that consists of data attributes and methods that operate on data attributes • An object is a software entry that contains both data and procedures • Data contained in an object is known as the object’s data attributes • Data attributes are variables that reference data • Procedures that an object performs are known as methods 1 -5 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -5

9. 1 Procedural and Object-Oriented Programming Object-oriented programming (OOP) • OOP separates code and data through encapsulation and data hiding • Encapsulation refers to the combining of data and code into a single object • Data hiding refers to an object’s ability to hide its data attributes from code that is outside the object • Protects the data attributes from accidentally being corrupted • Object reusability – it can be used by any program that needs its services 1 -6 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -6

9. 2 Classes Concept: A class is code that specifies data attributes and methods for a particular type of data. 1 -7 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -7

9. 2 Classes Class – code that specifies the data attributes and methods of a particular type of object. • It is the “blueprint” that objects may be created from • Each object that is created from a class is called an instance of the class 1 -8 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -8

9. 2 Classes Figure 9 -3 A blueprint and houses built from the blueprint Figure 9 -5 The housefly and mosquito objects are instances of the Insect class 1 -9 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -9

9. 2 Classes Class Definition • It is a set of statements that define a class’s methods and data attributes • Starts with the keyword class, followed by the class name • The self parameter is required in every method of the class • It is a way of knowing which object’s data attributes the method is supposed to operate on • Most python classes have the __init__ method • Known as the initializer method because it initializes the object’s data attributes 1 -10 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -10

9. 2 Classes Class Definition Program 9 -1 (Coin class, not a complete program) 1 -11 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -11

9. 2 Classes Class Definition Program 9 -2 (coin_demo 1. py) 1 -12 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -12

9. 2 Classes Class Definition Program 9 -2 (cont. ) (coin_demo 1. py) 1 -13 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -13

9. 2 Classes Class Definition Figure 9 -7 The my_coin variable references a Coin object 1 -14 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -14

9. 2 Classes Hiding Attributes … __attribute. Name Program 9 -4 (coin_demo 3. py) 1 -15 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -15

9. 2 Classes Storing Classes in Modules • Create a module with the class definitions; save the file using the. py extension • Import the module to any program that needs access to the class definition 1 -16 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -16

9. 2 Classes Storing Classes in Modules Program 9 -7 (account. py) Program 9 -8 (account_test. py) 1 -17 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -17

9. 2 Classes The __str__ method • Returns a string containing the object’s state • Object’s state is the value of the object’s attribute at any given moment For example: def __str__(self): state_string = ‘The account balance is $%. 2 f. ’ % return state_string self. __balance 1 -18 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -18

9. 3 Working with Instances Concept: Each instance of a class has its own set of data attributes. 1 -19 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -19

9. 3 Working with Instances • When the self parameter is used to create an attribute, the attribute belongs to the specific object that self references – instance attribute(s) Figure 9 -8 The coin 1, coin 2, and coin 3 variables reference three Coin objects 1 -20 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -20

9. 3 Working with Instances Accessor and Mutator Methods • The accessor method returns a value from a class’s attribute but does not change it. • The mutator method stores a value in a data attribute or changes the value of a data attribute in some other way. 1 -21 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -21

9. 4 Techniques for Designing Classes The Unified Modeling Language (UML) Provides a set of standard diagrams for graphically depicting object-oriented systems 1 -22 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -22

9. 4 Techniques for Designing Classes The Unified Modeling Language (UML) Figure 9 -10 General layout of a UML diagram for a class 1 -23 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -23

9. 4 Techniques for Designing Classes The Unified Modeling Language (UML) Figure 9 -12 UML diagram for the Cell. Phone class 1 -24 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -24

9. 4 Techniques for Designing Classes Finding the Classes in a Problem • Get a written description of the problem domain. • Identify all the nouns in the description. Each of these is a potential class. • Refine the list to include only the classes that are relevant to the problem. 1 -25 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -25

9. 4 Techniques for Designing Classes Identifying a Class’s Responsibility Figure 9 -13 UML diagram for the Customer class • The things that the class is responsible for knowing • The actions that the class is responsible for doing 1 -26 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 -26

Chapter 9 Classes and Object Oriented Programming QUESTIONS ? Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
- Slides: 27