Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object-oriented Design and Programming CS 2210: SW Development Methods Reading: Chapter 2 of MSD text – Section 2.3.2 on UML: look at class diagrams but.

Similar presentations


Presentation on theme: "Object-oriented Design and Programming CS 2210: SW Development Methods Reading: Chapter 2 of MSD text – Section 2.3.2 on UML: look at class diagrams but."— Presentation transcript:

1 Object-oriented Design and Programming CS 2210: SW Development Methods 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: 1.Name equivalence 2.Content equivalence 3.Neither one 4.Both

10 Do you think equals() returns true for: 1.Name equivalence 2.Content equivalence 3.Neither one 4.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


Download ppt "Object-oriented Design and Programming CS 2210: SW Development Methods Reading: Chapter 2 of MSD text – Section 2.3.2 on UML: look at class diagrams but."

Similar presentations


Ads by Google