0% found this document useful (0 votes)
13 views20 pages

Folien 3

Uploaded by

nxtpaper2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views20 pages

Folien 3

Uploaded by

nxtpaper2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

Object interaction

Creating cooperating objects

3.0
A digital clock

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 2
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 3
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 4
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 5
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 6
Object diagram

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

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 8
Primitive types vs. object
types

SomeObject obj; object type

int i;
32 primitive type

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 9
Primitive types vs. object
types
ObjectType a; ObjectType b;

b = a;
int a; int b;
32 32
Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 10
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 11
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 12
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 13
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 14
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 15
ClockDisplay object
diagram

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 16
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 17
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 18
Method calls (2)

object . methodName ( parameter-list


)

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

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

You might also like