cit 590 intro to programming object oriented programming

Post on 02-Jan-2016

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CIT 590Intro to Programming

Object oriented programming

Agenda• Finish up functional programming• More on classes• More discussion of style

Sieve example• Functional programming lends itself to recursion really

easily• Erasthothenes algorithm for getting rid of composite

numbers in a list of increasing numbers beginning with the number 2

• An ancient algorithm for finding prime numbers• From any list of increasing numbers remove the multiples

of any number in the list • Easy for list of size 1• Can I do this recursively???

The 3 argument version of the reduce function

• We have already seem reduce(function, list)• There is a 3 argument variant which is

• Reduce(function, list, identity element/first element for the process

• Sorting examples • Define insertion of an element into a sorted list • Now use a reduce operation

Quicksort• List comprehension = badass • Quicksort.py - how to do something like quickSort in very

few lines of code

More examples of classes• Stacks• Last in first out datastructure• Python does not have stacks but you can use a list to

simulate stacks• See stacks.py in the repository

Object oriented design• Think of your problem as a bunch of objects interacting

with each other• The way that an object interacts with another object is via

the methods• Library example

• A library is an object• Within the library object I need to have books … make that another

object• These books get issued by patrons … make a patron object• The library is the one that knows about all the patrons and all the

books.• An instance of a book does not need to care about patrons.

Inheritance revisited• How to call a method of your parent class?• What if the parent class does not want to define a method

completely? • We will explore this concept more fully when we do abstract

classes in Java

• animals.py has examples of this

More examples of refactoring

We’ll refactor refactoringExample.py

Main goal = showing you how to declutter the main function

top related