0% found this document useful (0 votes)
17 views

10 Gaddis Python Lecture PPT Ch10

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

10 Gaddis Python Lecture PPT Ch10

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

Starting out with Python

Fifth Edition

Chapter 10
Classes and Object-Oriented
Programming

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 1
Topics
• Procedural and Object-Oriented Programming
• Classes
• Working with Instances
• Techniques for Designing Classes

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 2
Procedural Programming
• Procedural programming: writing programs made of
functions that perform specific tasks
– Procedures typically operate on data items that are
separate from the procedures
– Data items commonly passed from one procedure to
another
– Focus: to create procedures that operate on the
program’s data

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 3
Object-Oriented Programming (1 of 4)
• Object-oriented programming: focused on creating
objects
• Object: entity that contains data and procedures
– Data is known as data attributes and procedures are
known as methods
 Methods perform operations on the data attributes

• Encapsulation: combining data and code into a single


object

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 4
Object-Oriented Programming (2 of 4)

Figure 10-1 An object contains data attributes and methods

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 5
Object-Oriented Programming (3 of 4)
• Data hiding: object’s data attributes are hidden from
code outside the object
– Access restricted to the object’s methods
 Protects from accidental corruption
 Outside code does not need to know internal structure of
the object
• Object reusability: the same object can be used in
different programs
– Example: 3D image object can be used for architecture
and game programming

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 6
Object-Oriented Programming (4 of 4)

Figure 10-2 Code outside the object interacts with the object’s methods

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 7
An Everyday Example of an Object
• Data attributes: define the state of an object
– Example: clock object would have second, minute,
and hour data attributes
• Public methods: allow external code to manipulate the
object
– Example: set_time, set_alarm_time
• Private methods: used for object’s inner workings

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 8
Classes (1 of 3)
• Class: code that specifies the data attributes and
methods of a particular type of object
– Similar to a blueprint of a house or a cookie cutter
• Instance: an object created from a class
– Similar to a specific house built according to the
blueprint or a specific cookie
– There can be many instances of one class

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 9
Classes (2 of 3)

Figure 10-3 A blueprint and houses built from the blueprint

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 10
Classes (3 of 3)

Figure 10-4 The housefly and mosquito objects are instances of the Insect class

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 11
Class Definitions (1 of 4)
• Class definition: set of statements that define a class’s
methods and data attributes
– Format: begin with class Class_name:
 Class names often start with uppercase letter
– Method definition like any other python function
definition
 self parameter: required in every method in the class –
references the specific object that the method is working
on

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 12
Class Definitions (2 of 4)
• Initializer method: automatically executed when an
instance of the class is created
– Initializes object’s data attributes and assigns self
parameter to the object that was just created
– Format: def __init__ (self):
– Usually the first method in a class definition

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 13
Class Definitions (3 of 4)

Figure 10-5 Actions caused by the Coin() expression

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 14
Class Definitions (4 of 4)
• To create a new instance of a class call the initializer
method
– Format: My_instance = Class_Name()
• To call any of the class methods using the created
instance, use dot notation
– Format: My_instance.method()
– Because the self parameter references the specific
instance of the object, the method will affect this
instance
 Reference to self is passed automatically

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 15
Hiding Attributes and Storing Classes
in Modules
• An object’s data attributes should be private
– To make sure of this, place two underscores (__) in
front of attribute name
 Example: __current_minute

• Classes can be stored in modules


– Filename for module must end in .py
– Module can be imported to programs that use the class

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 16
The BankAccount Class – More About
Classes
• Class methods can have multiple parameters in
addition to self
– For __init__, parameters needed to create an
instance of the class
 Example: a BankAccount object is created with a
balance
– When called, the initializer method receives a value to be
assigned to a __balance attribute
– For other methods, parameters needed to perform
required task
 Example: deposit method amount to be deposited

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 17
The __str__ method
• Object’s state: the values of the object’s attribute at a
given moment
• __str__ method: displays the object’s state
– Automatically called when the object is passed as an
argument to the print function
– Automatically called when the object is passed as an
argument to the str function

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 18
Working With Instances (1 of 3)
• Instance attribute: belongs to a specific instance of a
class
– Created when a method uses the self parameter to
create an attribute
• If many instances of a class are created, each would
have its own set of attributes

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 19
Working With Instances (2 of 3)

Figure 10-7 The coin1, coin2, and coin3 variables reference three Coin objects

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 20
Working With Instances (3 of 3)

Figure 10-8 The objects after the toss method

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 21
Accessor and Mutator Methods
• Typically, all of a class’s data attributes are private and
provide methods to access and change them
• Accessor methods: return a value from a class’s
attribute without changing it
– Safe way for code outside the class to retrieve the
value of attributes
• Mutator methods: store or change the value of a data
attribute

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 22
Passing Objects as Arguments
• Methods and functions often need to accept objects
as arguments
• When you pass an object as an argument, you are
actually passing a reference to the object
– The receiving method or function has access to the
actual object
 Methods of the object can be called within the receiving
function or method, and data attributes may be changed
using mutator methods

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 23
Techniques for Designing Classes (1 of 3)
• UML diagram: standard diagrams for graphically
depicting object-oriented systems
– Stands for Unified Modeling Language
• General layout: box divided into three sections:
– Top section: name of the class
– Middle section: list of data attributes
– Bottom section: list of class methods

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 24
Techniques for Designing Classes (2 of 3)

Figure 10-9 General layout of a UML diagram for a class

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 25
Techniques for Designing Classes (3 of 3)

Figure 10-10 UML diagram for the Coin class

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 26
Finding the Classes in a Problem (1 of 4)
• When developing object oriented program, first goal is
to identify classes
– Typically involves identifying the real-world objects that
are in the problem
– Technique for identifying classes:
1. Get written description of the problem domain
2. Identify all nouns in the description, each of which is a
potential class
3. Refine the list to include only classes that are relevant
to the problem

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 27
Finding the Classes in a Problem (2 of 4)
1. Get written description of the problem domain
– May be written by you or by an expert
– Should include any or all of the following:
 Physical objects simulated by the program
 The role played by a person
 The result of a business event
 Recordkeeping items

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 28
Finding the Classes in a Problem (3 of 4)
2. Identify all nouns in the description, each of which is
a potential class
– Should include noun phrases and pronouns
– Some nouns may appear twice

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 29
Finding the Classes in a Problem (4 of 4)
3. Refine the list to include only classes that are
relevant to the problem
– Remove nouns that mean the same thing
– Remove nouns that represent items that the program
does not need to be concerned with
– Remove nouns that represent objects, not classes
– Remove nouns that represent simple values that can
be assigned to a variable

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 30
Identifying a Class’s Responsibilities
• A classes responsibilities are:
– The things the class is responsible for knowing
 Identifying these helps identify the class’s data attributes
– The actions the class is responsible for doing
 Identifying these helps identify the class’s methods

• To find out a class’s responsibilities look at the


problem domain
– Deduce required information and actions

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 31
Summary
• This chapter covered:
– Procedural vs. object-oriented programming
– Classes and instances
– Class definitions, including:
 The self parameter
 Data attributes and methods
 __init__ and __str__ functions
 Hiding attributes from code outside a class
– Storing classes in modules
– Designing classes

Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 10 - 32

You might also like