1 / 15

Key Features of OO Approach

Key Features of OO Approach. Data encapsulation data and methods are contained in a single unit, object promotes internal integrity simplifies coding, debugging and maintenance Data hiding no need to know all the details of implementation. Key Features of OO Approach. Inheritance

steffi
Download Presentation

Key Features of OO Approach

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Key Features of OO Approach • Data encapsulation • data and methods are contained in a single unit, object • promotes internal integrity • simplifies coding, debugging and maintenance • Data hiding • no need to know all the details of implementation Object Oriented Programming

  2. Key Features of OO Approach • Inheritance • augment, restrict, specialize behavior • provides mechanism for reuse • Polymorphism • different behavior of the same method or operator depending on the class and/or parameters Object Oriented Programming

  3. What Is Design? • Reiss: “design in the most general sense is an abstract description of how something is built” • Design involves finding the set of alternatives most relevant to the problem, analyzing that set, and then choosing a subset of the alternatives that cooperatively solves the problem at hand in the “best” manner (making tradeoffs) Object Oriented Programming

  4. Quality of Design • Level of detail of components should be the same • Number of components should be reasonable • The hierarchy of components should be terminated at an appropriate level Object Oriented Programming

  5. Object Oriented Decomposition • Well-defined interfaces • Cluster related objects Object Oriented Programming

  6. Object • a tangible self-contained entity that exhibits some well-defined behavior • has state, behavior, and identity; the structure and behavior of similar objects are defined in their common class • exists at run-time Object Oriented Programming

  7. Class • description of a number of similar objects – custom data type • objects are instances of the class • consists of interface and implementation • provides three levels of access control • public, protected, private • classes are related in various ways Object Oriented Programming

  8. #ifndef BANKACCOUNT_H #define BANKACCOUNT_H #include <string> class BankAccount { private: string acctOwner; int acctNum; double curBalance; public: BankAccount(string, int); BankAccount(string, int, double); ~BankAccount() {}; void setBalance(double); double getBalance() const; }; #endif attributes constructors destructor modifier selector interface

  9. #include “bankacct.h” BankAccount::BankAccount(string name, int number) :acctOwner(name), acctNum(number),curBalance(0) { } BankAccount::BankAccount(string name, int number, double balance) : acctOwner(name), acctNum(number), curBalance(balance) { } void BankAccount::setBalance(double newBalance) {curBalance = newBalance); } double BankAccount::getBalance() const {return curBalance;} initializing implementation

  10. using namespace std; #include “bankacct.h” void main() { BankAccount* ba = new BankAccount(“Jones”, 1234); ba->setBalance(200.00); cout<<“The balance is “<<ba->getBalance()<<endl; delete ba; } pointer deallocation use

  11. Evaluation criteria for a design • Correctness, completeness • Simplicity • Risk management • Cohesion and coupling • Information hiding • Error handling Object Oriented Programming

  12. Simplification • Can operations be removed? • Can data elements be removed? • Can parameters be removed from operations? • Can parameter and return types for operations be simplified? • Are the operations and their parameters logically consistent? Object Oriented Programming

  13. Simplify by making methods short • Pseudocoding/coding guideline: a method should fit onto one page (one screen). • If the method is too long, split it into separate methods. • If there are too many methods in a class, rewrite a method so that it invokes lower-level classes. Object Oriented Programming

  14. Cohesion and Coupling • A class is cohesive if everything is directed toward a central purpose. • A class has good coupling if it has minimal dependency on other classes. • A class should not need to know the implementation of another class. Object Oriented Programming

  15. Implementing OO design • Two steps: • Convert class design into class declarations • Construct real code from pseudocode Object Oriented Programming

More Related