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
programming_general:object-orientation_fundamentals_slides [2020/09/14 00:33] mithatprogramming_general:object-orientation_fundamentals_slides [2021/11/28 19:14] (current) – [Object-oriented languages] 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.
  
 ===== Object-oriented languages ===== ===== Object-oriented languages =====
   * Possible to implement OOAD in any language.   * Possible to implement OOAD in any language.
-  * Much easier and more robust when language has support for defining and using objects: an **object-oriented language**.+  * Easier and more robust when language has support for defining and using objects: an **object-oriented language**.
  
 ===== Object-oriented concepts ===== ===== Object-oriented concepts =====
Line 69: 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.1600043635.txt.gz · Last modified: 2020/09/14 00:33 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki