programming_general:object-orientation_fundamentals_slides
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
programming_general:object-orientation_fundamentals_slides [2020/09/14 00:33] – mithat | programming_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 | + | ===== 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?// |
* " | * " | ||
- | ===== Object-thinking ===== | + | ===== Object-oriented |
- | * 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 | + | * How do they interact? |
* " | * " | ||
===== Object-oriented languages ===== | ===== Object-oriented languages ===== | ||
* Possible to implement OOAD in any language. | * Possible to implement OOAD in any language. | ||
- | * Much easier | + | * Easier |
===== 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.\\ | ||
+ | {{: | ||
+ | * All Farberware 4241s made from a master plan. | ||
+ | * Defines what the Farberware 4241 //is//. | ||
+ | * In computing terminology, | ||
+ | * 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**: | ||
+ | * Currently less common than class-based OOP. | ||
programming_general/object-orientation_fundamentals_slides.txt · Last modified: 2021/11/28 19:14 by mithat