User Tools

Site Tools


python:python_misc:oo_fundamentals_with_python

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
python:python_misc:oo_fundamentals_with_python [2018/11/30 18:28] – [Behavior] mithatpython:python_misc:oo_fundamentals_with_python [2018/11/30 18:41] – [Defining classes in Python] mithat
Line 70: Line 70:
 {{:python:about_python:farberware4241-200.jpeg?nolink|}} {{:python:about_python:farberware4241-200.jpeg?nolink|}}
  
-I have a Farberware 4241 microwave oven in my office. It's small, but it gets the job done. There is a factory somewhere making these by the thousand million, and they make all the Farberware 4241s from a master plan. That master plan defines what the Farberware 4241 //is//. In computing terminology, we would call that master plan a **class**. A class contains all the specifications needed to make a particular kind of object. +I have a Farberware 4241 microwave oven in my office. It's small, but it gets the job done. There is a factory somewhere making these by the thousand million. They make all the Farberware 4241s from a master plan, a plan that defines what the Farberware 4241 //is//. In object-oriented design terminology, we would call that master plan a **class**. A class contains all the specifications needed to make a particular kind of object.
  
-Every Farberware 4241 begins its life identical to every other freshly-made Farberware 4241 because they were made using the same master planSo, the one in my office that I pulled out of the box last month was identical to the one that I bought my best friend last week later because they were built from the same master plan, or, if you will, the same class. But as my best friend and I started using our ovens, the state of each changed. Note that while the behavior designed into the oven---the operations it's capable of---doesn't (and won't) change, the state of any individual oven does change over time.+Languages that support **class-based object-oriented programming** let you define classes at a very high levelOnce you've defined a class you can then create **instances**: objects created from a class. The process of creating an instance from a class is called **instantiation**.
  
-In **class-based object-oriented programming**, we call objects that have been created from classes **instances**. Thus my oven is an instance of a Farberware 4241. The process of creating an instance from a class is called **instantiation**. So you might say the Farberware factory spends it's entire day instantiating 4241 ovens.+Thus my oven is an instance of a Farberware 4241, and you might say the Farberware factory spends it's entire day instantiating 4241 ovens.
  
 ==== Prototype-based object-orientation ==== ==== Prototype-based object-orientation ====
Line 91: Line 91:
 )) \\ {{..:about_python:tottycounter.jpg?234|}} )) \\ {{..:about_python:tottycounter.jpg?234|}}
  
-In case you've never seen this bit of advanced technology before, it's a clicker-counter or tally-counter. It has two controls: a button you click to advance the counter by one and another you press to reset the count to zero. Our goal is to build one of these in software using object-orientation.+In case you've never seen one of these bits of advanced technology before, it's a clicker-counter or tally-counter. It has two controls: a button you click to advance the counter by one and another you press to reset the count to zero. Our goal is to build one of these in software using object-orientation.
  
 One way to start building a model for a class is to start listing the public-facing behavior (or the //interface//) you want an object of that class to have. A pretty comprehensive list of the things you might do with a clicker-counter is: One way to start building a model for a class is to start listing the public-facing behavior (or the //interface//) you want an object of that class to have. A pretty comprehensive list of the things you might do with a clicker-counter is:
python/python_misc/oo_fundamentals_with_python.txt · Last modified: 2018/11/30 18:45 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki