Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Oop Overview

3,494 views

Published on

Published in: Business, Technology
  • Be the first to comment

Oop Overview

  1. 1. ' $ Object-Oriented Programming An Overview & % OOP-1
  2. 2. ' $ Contents • OOP and software productivity • Features and characteristics of OOP • Major concepts of OOP • OOP languages • OOP and traditional design • Advantages and disadvantages & % OOP-2
  3. 3. ' $ What is Object-Oriented Programming • A well-regarded and widely accepted programming technology • Potential for much improved productivity • Uses interacting program objects • Objects are independent entities • Objects respond to messages & % OOP-3
  4. 4. ' $ Software Productivity Factors • Modularity (separation of duties) • Extensibility (responsive to future requirements) • Modifiability (easy to make small changes) • Flexibility (not cast in concrete) • Maintainability (big savings) • Reusability (don’t reinvent the wheel) & % OOP-4
  5. 5. ' $ Software Engineering Techniques • Data abstraction (hidden data representation) • Program encapsulation (operations married to data) • Software libraries (fixed reusable) • Reusable Objects (flexible, reusable) • Polymorphism (type-related generic operations) • Maintenance automation & % OOP-5
  6. 6. ' $ OOP Central Concepts • Data abstraction • Encapsulation • Classification • Inheritance • Polymorphism & % OOP-6
  7. 7. ' $ OOP Characteristics • Class definitions • Inheritance and class hierarchy • Operator and Function overloading • Generic classes • Class libraries & % OOP-7
  8. 8. ' $ OOP Languages • Simula • Modula • Smalltalk • Ada • Objective-C • CLOS (Common Lisp Object Standard) • Standard C++ • Java • Scripting languages: Perl, Javascript, Python & % OOP-8
  9. 9. ' $ Traditional vs. OOP • Procedural Programming : data structures + algorithms = Program • OOP : objects + messages = Program & % OOP-9
  10. 10. ' $ Class Definition • Blueprint for building Objects • Members: methods and fields • private and public • API—application programming interface • relation with other classes & % OOP-10
  11. 11. ' $ An Object Public Method Internal call working interface & % OOP-11
  12. 12. ' $ Inheritance Example Auto Sedan Engine 2−4 Doors Steering 4 Wheels Inherits Breaks Radio Doors Trunk Wheels Tires & % OOP-12
  13. 13. ' $ Inheritance Example Sedan Family Sedan 2−4 Doors 4 Doors 4 Wheels AC Inherits Automatic Radio Big Trunk Trunk Fuel Economy & % OOP-13
  14. 14. ' $ Inheritance Example Sedan Sports Sedan 2−4 Doors 2 Doors 4 Wheels AC Inherits Manual Radio Tiny Trunk Trunk Horse power High Price & % OOP-14
  15. 15. ' $ Inheritance Concepts • Deriving new classes from old ones • Single inheritance • Partial inheritance • Multiple inheritance • Inheritance chain & % OOP-15
  16. 16. ' $ Generic Classes • Class definition for unspecified data • Container class • Flexible and reusable & % OOP-16
  17. 17. ' $ Reusability Considerations • Pipes / filter (ala UNIX): slow, restrictive • Subroutine libraries: fast, inflexible • Object libraries: flexible, and efficient & % OOP-17
  18. 18. ' $ Design Approaches • Ways to Break The Problem Down • Procedural decomposition • Data decomposition • Object-oriented decomposition & % OOP-18
  19. 19. ' $ Procedural Decomposition • Also known as functional or traditional design • Decompose the solution into major steps • Decompose each major step further • Decomposition procedural-oriented & % OOP-19
  20. 20. ' $ Traditional Design Disadvantages • Data and operations are separated • No data abstraction or info hiding • Not responsive to changes in problem space • Inadequate for concurrent problems & % OOP-20
  21. 21. ' $ Object-oriented Design Principle • Identify interacting objects • Characterize each object, establish attributes • Identify the data and operations within each object • Identify requests answered by each object • Identity services required of other objects • Establish relationships to other objects • Group similar objects together • Implement common super classes • Implement different objects as classes & % OOP-21
  22. 22. ' $ Advantages • Responsive to changes • Encapsulation • Simplify Testing, debugging • Easy to understand • Avoid reinventing the wheel • Easier to manage, to maintain • Off-the-shelf software & % OOP-22
  23. 23. ' $ Potential Disadvantages • Over generalization • Artificial class relations • Unnecessary complications & % OOP-23

×