1 / 24

OOP Review

OOP Review. CS 124. Object-Oriented Programming Revisited. Key OOP Concepts Object, Class Instantiation, Constructors Encapsulation Inheritance and Subclasses Abstraction Reuse Polymorphism, Dynamic Binding Object-Oriented Design and Modeling. Object.

dcordova
Download Presentation

OOP Review

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. OOP Review CS 124

  2. Object-Oriented ProgrammingRevisited • Key OOP Concepts • Object, Class • Instantiation, Constructors • Encapsulation • Inheritance and Subclasses • Abstraction • Reuse • Polymorphism, Dynamic Binding • Object-Oriented Design and Modeling

  3. Object Definition: a thing that has identity, state, and behavior • identity: a distinguished instance of a class • state: collection of values for its variables • behavior: capability to execute methods * variables and methods are defined in a class

  4. Class Definition: a collection of data (fields/ variables) and methods that operate on that data • define the contents/capabilities of the instances (objects) of the class • a class can be viewed as a factory for objects • a class defines a recipe for its objects

  5. Instantiation • Object creation • Memory is allocated for the object’s fields as defined in the class • Initialization is specified through a constructor • a special method invoked when objects are created

  6. Encapsulation • A key OO concept: “Information Hiding” • Key points • The user of an object should have access only to those methods (or data) that are essential • Unnecessary implementation details should be hidden from the user • In Java/C++, use classes and access modifiers (public, private, protected)

  7. Inheritance • Inheritance: • programming language feature that allows for the implicit definition of variables/methods for a class through an existing class • Subclass relationship • B is a subclass of A • B inherits all definitions (variables/methods) in A

  8. Abstraction • OOP is about abstraction • Encapsulation and Inheritance are examples of abstraction • What does the verb “abstract” mean?

  9. Reuse • Inheritance encourages software reuse • Existing code need not be rewritten • Successful reuse occurs only through careful planning and design • when defining classes, anticipate future modifications and extensions

  10. Polymorphism • “Many forms” • allow several definitions under a single method name • Example: • “move” means something for a person object but means something else for a car object • Dynamic binding: • capability of an implementation to distinguish between the different forms during run-time

  11. Building Complex Systems • From Software Engineering:complex systems are difficult to manage • Proper use of OOP aids in managing this complexity • The analysis and design of OO systems require corresponding modeling techniques

  12. Object-Oriented Modeling • UML: Unified Modeling Language • OO Modeling Standard • Booch, Jacobson, Rumbaugh • What is depicted? • Class details and static relationships • System functionality • Object interaction • State transition within an object

  13. Some UML Modeling Techniques • Class Diagrams • Use Cases/Use Case Diagrams • Interaction Diagrams • State Diagrams

  14. Example:Class Diagram Borrower Book 0..3 0..1 currBorr bk[] public class Borrower { Book bk[]; … public Borrower() { bk = new Book[3]; } } public class Book { Borrower currBorr; … }

  15. Example:Use Case Diagram LIBRARY SYSTEM Facilitate Checkout Search for Book Borrower Librarian Facilitate Return

  16. Example:Interaction Diagram 2: isAvailable() Checkout Screen :Book 1: borrowAllowed() 3: borrowBook() 4: setBorrower() :Borrower

  17. Example:State Diagram (Book) start Reserved Borrowed New Librarian activates book as available Borrower returns book Available

  18. Object-Oriented Design Models • Static Model • Class Diagrams • Dynamic Model • Use Cases, Interaction Diagrams, State Diagrams, others

  19. OO Static Model • Classes and Class Diagrams • Relationships • Association • Aggregation/Composition • Inheritance • Dependencies • Attribute and Method names

  20. OO Dynamic Model • Goal: Represent • Object behavior • Object interaction • Traditional/Procedural Dynamic Modeling • Data Flow Diagrams (DFDs) • Problem: Processes separate from data • Need modeling notation that highlight tight relationship between data & processes

  21. DFD Example(Inventory Management) Accept and Post Delivery Delivery info Transaction Item Master

  22. OO Counterpart:Object Interaction new (delivery info) Encoder :Transaction post (item count) :Item Master

  23. Building anOO Dynamic Model • Identify use cases • Describe each use case through an interaction diagram • For more complex objects, provide a state diagram per class • Derive implied methods (and attributes)

  24. What’s Next? • Need to understand the notation • Make sure it helps the software development process • When to use the UML techniques • Primarily when specifying OO design • Formal means of communication across the different software development stages

More Related