1 / 13

CS 2210: SW Development Methods

CS 2210: SW Development Methods. Object-oriented Design and Programming. Reading: Chapter 2 of MSD text Section 2.3.2 on UML: look at class diagrams but ignore the rest for now. This Unit Overview. Review OO, objects, classes Object identity, equality and Java

gavril
Download Presentation

CS 2210: SW Development Methods

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. CS 2210: SW Development Methods Object-oriented Design and Programming • Reading: Chapter 2 of MSD text • Section 2.3.2 on UML: look at class diagrams but ignore the rest for now

  2. This Unit Overview • Review OO, objects, classes • Object identity, equality and Java • Intro to abstraction and inheritance • Class identification and modeling • Modeling object interaction • More Java details on classes etc. • inheritance, abstract classes, types

  3. What’s OO All About? • At a very high level, programs are: • procedures operating on • data-objects • The “old” view sometimes called procedural • Procedures are the starting point • Access data through parameters, shared values • Only approach for languages like C, Pascal • A system is: a hierarchy of procedure calls

  4. The OO Approach • Object-oriented: • Emphasis on the data-objects first • Data encapsulation • Associate procedures with the data-objects • Procedural encapsulation • Call operations on data-objects, or • Send a data-object a message • A system is: a group of collaborating objects

  5. What’s an Object? • Grady Booch’s definition: an object has: state, behavior, identity • State • encapsulates data (e.g. fields in Java objects) • contains relationships with other objects (e.g. references to other objects)

  6. What’s an Object? (2) • Behavior • Responds to operations, messages (e.g. Java method calls on that object) • Interacts with other objects to accomplish a task

  7. What’s an Object? (3) • Identity • Simple idea, but… • Are two objects the same? Or are they equal? • Reference variables in Java, C++, etc. • Identity means: refers to the same object • Book calls this: name equivalence

  8. Object Equality • Equality: perhaps two things can be different things, but equal according to some problem-defined condition • E.g. two Course objects: equal if same courseID field (let’s say) • Book’s term: content equivalence

  9. For objects, do you think == tests for: • Name equivalence • Content equivalence • Neither one • Both

  10. Do you think equals() returns true for: • Name equivalence • Content equivalence • Neither one • Either Example: x.equals(y) is true means what about x and y?

  11. Java and Object Equivalence • Java supports both. You must understand them both! • If not: see slides at the end of this deck • name equivalence: operator == • E.g. x==y means “do x and y reference the same (one) object”? • method boolean equals() • E.g. x.equals(y) means “do x and y stored the same values to make them content equivalent”?

  12. Classes • So far we’ve just talked about objects • We note that many objects are a “type of” the same kind of thing • The same “abstraction” • E.g. 1, 2, 7 and 10 – whole numbers • E.g. 1, 3.5, 25, pi – numbers • Bob, Sally, Joe – Students • But, they are Persons too, aren’t they? • cs2110, cs2102, engr1620 – Courses

  13. Classes, Type • Classes define a set of objects with the same properties (state, behavior) • A class definition serves as a “cookie cutter” for creating new objects • Instantiation of an object of a certain class • In Java, we do this with new and a constructor is called • Creates an individual object, also called an instance • Variables and data objects have a type • What the rules are for that object • An object’s class is one form of object-type

More Related