Download Objects First With Java - Chapter 3

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Objects First With Java
A Practical Introduction Using BlueJ
Object interaction
Creating cooperating objects
1.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
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
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
• 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
20
Related documents