Presentation is loading. Please wait.

Presentation is loading. Please wait.

Creating cooperating objects

Similar presentations


Presentation on theme: "Creating cooperating objects"— Presentation transcript:

1 Creating cooperating objects
Object interaction Creating cooperating objects 1.0

2 A digital clock Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

3 Abstraction and modularization
Abstraction is the ability to ignore details of parts to focus attention on a higher level of a problem. Modularization is the process of dividing a whole into well-defined parts, which can be built and examined separately, and which interact in well-defined ways. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

4 Modularizing the clock display
One four-digit display? Or two two-digit displays? Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

5 Implementation - NumberDisplay
public class NumberDisplay { private int limit; private int value; Constructor and methods omitted. } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

6 Implementation -ClockDisplay
public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; Constructor and methods omitted. } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

7 Object diagram Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

8 Class diagram Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

9 Primitive types vs. object types
SomeObject obj; object type int i; primitive type 32 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

10 Primitive types vs. object types
SomeObject a; SomeObject b; b = a; int a; int b; 32 32 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

11 Source code: NumberDisplay
public NumberDisplay(int rollOverLimit) { limit = rollOverLimit; value = 0; } public void increment() value = (value + 1) % limit; Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

12 Source code: NumberDisplay
public String getDisplayValue() { if(value < 10) return "0" + value; else return "" + value; } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

13 Objects creating objects
public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; private String displayString; public ClockDisplay() hours = new NumberDisplay(24); minutes = new NumberDisplay(60); updateDisplay(); } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

14 Method calling public void timeTick() { minutes.increment();
if(minutes.getValue() == 0) { // it just rolled over! hours.increment(); } updateDisplay(); Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

15 Internal method /** * Update the internal string that
* represents the display. */ private void updateDisplay() { displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue(); } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

16 ClockDisplay object diagram
Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

17 Objects creating objects
in class NumberDisplay: public NumberDisplay(int rollOverLimit); formal parameter in class ClockDisplay: hours = new NumberDisplay(24); actual parameter Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

18 Method calls internal method calls updateDisplay();
private void updateDisplay() external method calls minutes.increment(); Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

19 object . methodName ( parameter-list )
Method calls (2) object . methodName ( parameter-list ) Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

20 Concepts abstraction modularization classes define types class diagram
object diagram object references primitive types object types object creation overloading internal/external method call debugger Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling


Download ppt "Creating cooperating objects"

Similar presentations


Ads by Google