DOC PREVIEW
DREXEL CS 265 - ood

This preview shows page 1-2-3-4-5 out of 15 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Key Features of OO ApproachKey Features of OO ApproachWhat Is Design?Quality of DesignObject Oriented DecompositionObjectClass Evaluation criteria for a designSimplificationSimplify by making methods shortCohesion and CouplingImplementing OO designObject Oriented ProgrammingKey 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 implementationObject Oriented ProgrammingKey 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 parametersObject Oriented ProgrammingWhat 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 ProgrammingQuality 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 levelObject Oriented ProgrammingObject Oriented Decomposition• Well-defined interfaces• Cluster related objectsObject Oriented ProgrammingObject• 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-timeObject Oriented ProgrammingClass• 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#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;};#endifinterfaceconstructorsdestructormodifierselectorattributes#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;}implementationinitializingusing 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;}usepointerdeallocationObject Oriented ProgrammingEvaluation criteria for a design• Correctness, completeness• Simplicity• Risk management• Cohesion and coupling• Information hiding• Error handlingObject Oriented ProgrammingSimplification• 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 ProgrammingSimplify 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 ProgrammingCohesion 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 ProgrammingImplementing OO design• Two steps:– Convert class design into class declarations– Construct real code from


View Full Document

DREXEL CS 265 - ood

Download ood
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view ood and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view ood 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?