User Tools

Site Tools


programming_general:object-orientation_fundamentals

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 [2020/09/11 22:05] – ↷ Page moved from general:object-orientation_fundamentals to programming_general:object-orientation_fundamentals mithatprogramming_general:object-orientation_fundamentals [2020/11/15 00:03] (current) – [Object-oriented concepts] mithat
Line 1: Line 1:
 ====== Object-Orientation Fundamentals ====== ====== Object-Orientation Fundamentals ======
- 
- 
- 
  
 ===== Why object-orientation? ===== ===== Why object-orientation? =====
Line 9: Line 6:
 But why objects? But why objects?
  
-OOAD was created to try to solve some of the issues involved in designing and managing large applications. It represents a shift in the way you typically approach a problem using procedural/structured programming thinking. With procedural/structured programming thinking, a developer will typically think in terms of, "What needs to _happen_." It tends to focus on creating a set of functions or subroutines to do the things that need to get done. If you likeit'modularity derives primarily from the "verbs" in the system.+OOAD was created to try to solve some of the issues involved in designing and managing large applications. 
 + 
 +It represents a shift in the way you typically approach a problem when using procedural/structured programming. With procedural/structured programming thinking, a developer typically thinks in terms of, "What needs to //happen//?" It tends to focus on creating a set of functions or subroutines to do the things that need to get done. Thusthe modularity in procedural programming derives primarily from the "verbs" in the system.
  
-In object-oriented thinking, you start with, "What are the components (objects) that make up the problem?" Once you identify those. Once you have a those, you then ask, "How do they behave?" and then, "How do the components interact?" The modularity in object-oriented thinking derives primarily from the "nouns" in the system.+In object-oriented thinking, you start with, "What are the components (i.e., objects) that make up the problem?" Once you identify those, you then ask, "How do they behave?" and then, "How do the components interact?" So, the modularity in object-oriented thinking derives primarily from the "nouns" in the system.
  
-While it is possible to analyze and design systems (i.e., applications) using this approach and implement the design in any language, the implementation is made _much_ easier and more robust when the language has the necessary support for defining and using objects. Such a language is an **object-oriented language**.+You can //analyze// and //design// your problem using this //object-oriented// perspective and then implement the design in any language. However, the implementation is made //much// easier and more robust when the language has the necessary support for defining and using objects. Such a language is an **object-oriented language**.
  
 So, OOAD facilitates a higher level of modular thinking. And, especially with an object-oriented language, it allows for very effective project management of large applications. So, OOAD facilitates a higher level of modular thinking. And, especially with an object-oriented language, it allows for very effective project management of large applications.
Line 19: Line 18:
 ===== Object-oriented concepts ===== ===== Object-oriented concepts =====
  
-The concept of an object in computing comes directly from the concept of an "object" in the real world. The concepts critical to understanding object-orientation in programming are:+The concept of an object in computing comes directly from the concept of an "object" in the real world. The concepts central to understanding object-orientation in programming are:
  
   * state   * state
Line 81: Line 80:
  
 There is another kind of object-orientation called **prototype-based object-orientation** or **prototype-based programming**. This is the kind of object-orientation used in JavaScript and some other languages.((C++, Java, C#, and PHP support only class-based object-orientation. JavaScript and Ruby are inherently prototype-based, though "modern" JavaScript (ES6 and beyond) can emulate class-based inheritance. Objective-C is class-based but lets you do prototype-based programming.)) I will leave it to you to get your Google on and learn more about prototype-based object-orientation if you want. There is another kind of object-orientation called **prototype-based object-orientation** or **prototype-based programming**. This is the kind of object-orientation used in JavaScript and some other languages.((C++, Java, C#, and PHP support only class-based object-orientation. JavaScript and Ruby are inherently prototype-based, though "modern" JavaScript (ES6 and beyond) can emulate class-based inheritance. Objective-C is class-based but lets you do prototype-based programming.)) I will leave it to you to get your Google on and learn more about prototype-based object-orientation if you want.
 +
  
 ==== Ovens and code ==== ==== Ovens and code ====
-So, you get the idea of objects in the physical world. Learning how this relates to computer code is your next step.+So, you now get the idea of objects in the physical world. Learning how this relates to computer code is your next step.
  
 Copyright © 2011-2020 Mithat Konar. All rights reserved. Copyright © 2011-2020 Mithat Konar. All rights reserved.
programming_general/object-orientation_fundamentals.1599861932.txt.gz · Last modified: 2020/09/11 22:05 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki