User Tools

Site Tools


programming_general:object-orientation_fundamentals_slides

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
programming_general:object-orientation_fundamentals_slides [2020/09/14 00:30] mithatprogramming_general:object-orientation_fundamentals_slides [2021/11/28 19:14] – [Object-oriented thinking] mithat
Line 1: Line 1:
 ~~SLIDESHOW~~ ~~SLIDESHOW~~
 ====== Object-Orientation Fundamentals ====== ====== Object-Orientation Fundamentals ======
 +Mithat Konar
 ===== Why object-orientation? ===== ===== Why object-orientation? =====
   * **Object-oriented programming** came about to support **object-oriented analysis and design** (OOAD).    * **Object-oriented programming** came about to support **object-oriented analysis and design** (OOAD). 
   * OOAD created to solve issues involved in designing and managing large applications.   * OOAD created to solve issues involved in designing and managing large applications.
  
-===== Procedural/structured programming thinking ===== +===== Procedural thinking ===== 
-  * What needs to happen? +  * Break down large problems into functions or procedures. 
-  * Focus on creating a set of functions to do the things that need to get done.+  * //What needs to happen?//
   * "Verb" oriented.   * "Verb" oriented.
  
-===== Object-thinking ===== +===== Object-oriented thinking ===== 
-  * What are the components (objects) that make up the problem?+  * Break down large problems into the components (objects) that make up the problem.
   * How do they behave?   * How do they behave?
-  * How do the components interact?+  * How do they interact?
   * "Noun" oriented.   * "Noun" oriented.
  
Line 51: Line 51:
 ===== Encapsulation ===== ===== Encapsulation =====
  
-  * Consider: +  * User changes the state of the oven only by engaging one or more of the operations in the oven’s interface. 
-    * One changes the state of the oven only by engaging one or more of the operations in the oven’s interface. +  Don’t need to know how a magnetron, the clock’s electronics, or anything else works to use the oven. 
-    You don’t need to know how a magnetron, the clock’s electronics, or anything else works to use the oven. +  Only need to know what changes in state to expect from the “cook 1 minute” or “add 30 seconds” operations. 
-    You only need to know what changes in state to expect from the “cook 1 minute” or “add 30 seconds” operations. +  * “I don’t care about how it works—I only need to know what it does,” is part of **encapsulation**.
-  * “I don’t care about how it works—I only need to know what it does,” is part of **encapsulation**: “to place in a capsule.+
  
 ===== Protection ===== ===== Protection =====
Line 70: Line 69:
   * **object**: a program entity that encapsulates state (via attributes) and behavior (via operations involving those attributes) for some meaningful abstraction.   * **object**: a program entity that encapsulates state (via attributes) and behavior (via operations involving those attributes) for some meaningful abstraction.
  
 +===== Class-based object-orientation =====
 +
 +  * My Farberware 4241 microwave.\\ 
 +{{:python:about_python:farberware4241-200.jpeg?nolink|}}
 +  * All Farberware 4241s made from a master plan.
 +    * Defines what the Farberware 4241 //is//.
 +  * In computing terminology, the master plan is a **class**.
 +  * A class contains all the specifications needed to make a particular kind of object.
 +
 +===== Class-based object-orientation =====
 +
 +  * Objects that have been created from classes are also called **instances**.
 +  * The process of creating an instance from a class definition is called **instantiation**.
 +
 +===== Prototype-based object-orientation =====
  
 +  * **Prototype-based object-orientation**: used in JavaScript and some other languages.
 +  * Currently less common than class-based OOP.
  
programming_general/object-orientation_fundamentals_slides.txt · Last modified: 2021/11/28 19:14 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki