In order to write this or any other Java program of substance, you will need to
know
how to use the
Java Platform, Standard Edition API Specification as well as the documentation for the
Guzdial-Ericson Multimedia Class Library .
You may find other useful hints in my online tutorials and slides for this
course as well as in the YouTube video lectures for this course.
Testing Your Programs
You can compile and execute your program by following the instructions given
at
Java OOP: The Guzdial-Ericson
Multimedia Class Library .
Program Specifications
Program 1
Discussion
The following is a non-exhaustive list of concepts that you need to
understand along with knowledge and skills that youneed to possess in order to successfully write this program and/or understand
the given solution in
Prob01.java . Some of these items
are general in nature and some are specific to the use of Ericson's multimedialibrary.
- How to design and implement an algorithm that will transform
Prob01.jpg into the image
shown in
Figure 1 .
- How to incorporate and use an
external class library in addition to the standard Java class library.
- The
general syntax for a Java application
(not a
Java applet).
- How to
write ,
compile, and execute a
Java application that uses the Guzdial-Ericson Multimedia Class Library.
- How to use the standard
print and
println methods of the
System class to display text on
the command-line screen.
- The effect of
overridden versions of the
toString method on the
print and
println methods
- Knowledge of the need for and use of
import directives .
- How to
define and
instantiate an object of a new class
named
Prob01Runner .
- Knowledge of the difference between
local variables and
instance variables .
- How to declare local
reference variables of a given type.
- How to save the
Prob01Runner object's reference in a
reference variable of type
Prob01Runner named
obj .
-
How to call the
run method,
(which
controls the major behavior of the program) , on the
Prob01Runner object's reference.
- How to use
private ,
public ,
protected , and
package-private access modifiers.
- How to declare and use
reference variables versus
primitive variables .
- How to select the appropriate
overloaded
constructors in order to i
nstantiate objects of Ericson's
World ,
Turtle , and
Picture classes.
- How to define a
constructor for a class.
- How to write
accessor methods in your new class
definition that return references to
Turtle and
World objects.
- How and why to call
accessor methods on objects.
- How to instantiate
anonymous objects .
- How to
replace the default white
Picture object encapsulated in a
World object with a new and different
Picture object encapsulating the contents of a local image file.
- How to call a method on a
Picture object to
write
text onto the
Picture object.
- How to
call a variety of methods on objects of
the
Turtle class to cause the
Turtle objects in
your world to do things, such as move forward, change their colors, etc.
- How pictures are composed of images.
- How images are composed of pixels.
- How pixels are composed of red, green, and blue color values.
- How objects can be used to represent pictures, images, and pixels.
- How methods can be called on those objects to manipulate the red, green,
and blue color values.