<< Chapter < Page | Chapter >> Page > |
Instantiate a new object and call its run method
The code in the main method instantiates a new object of the class named Prob02Runner and calls the run method on that object.
When the run method returns, the main method terminates causing the program to terminate.
Beginning of the class named Prob02Runner
The beginning of the class named Prob02Runner , including the constructor, is shown in Listing 2 .
Listing 2 - Beginning of the class named Prob02Runner. |
---|
class Prob02Runner{
public Prob02Runner(){
System.out.println("Display your name here.");}//end constructor |
The constructor displays the student's name, producing the first line of output text shown in Figure 5 .
The run method
The run method that is called in Listing 1 is shown in its entirety in Listing 3 .
Listing 3 - The run method. |
---|
public void run(){
Picture pix = new Picture("Prob02a.jpg");//Add your name and display the output picture.
pix.addMessage("Display your name here.",10,20);//Display the input picture.
pix.explore();pix = rotatePicture(pix,35);
pix.explore();pix = mirrorUpperQuads(pix);
pix = mirrorHoriz(pix);pix.explore();
System.out.println(pix);}//end run |
Very familiar code
Except for the calls to the methods named mirrorUpperQuads and mirrorHoriz in Listing 3 , you should already be familiar with all of the code in Listing 3 .
The rotatePicture method
For example, the call to the method named rotatePicture is essentially the same as code that I explained in an earlier module. Therefore, Iwon't explain that method again in this module. You will find the code for the method named rotatePicture in Listing 6 near the end of the module.
Operate on the picture with the rotated image
The original picture is replaced by a picture containing the rotated image shown in Figure 3 . From this point forward, all operations are performed on the Picture object containing the rotated image.
The method named mirrorUpperQuads
The method named mirrorUpperQuads that is called in the run method in Listing 3 is shown in Listing 4 .
Behavior of the method named mirrorUpperQuads
This method mirrors the upper-left quadrant of a picture into the upper-right quadrant as shown in Figure 6 .
Listing 4 - The method named mirrorUpperQuads. |
---|
private Picture mirrorUpperQuads(Picture pix){
Pixel leftPixel = null;Pixel rightPixel = null;
int midpoint = pix.getWidth()/2;int width = pix.getWidth();
for(int row = 0;row<pix.getHeight()/2;row++){
for(int col = 0;col<midpoint;col++){
leftPixel = pix.getPixel(col,row);rightPixel =
pix.getPixel(width-1-col,row);rightPixel.setColor(leftPixel.getColor());
}//end inner loop}//end outer loop
return pix;}//end mirrorUpperQuads |
Declare four working variables
Listing 4 begins by declaring and initializing four working variables. The purpose of these variables should be obvious on the basisof their names and their initialization expressions.
Copy the pixel colors
Then Listing 4 uses a double nested for loop to copy the colors from the pixels in the upper-left quadrant into thepixels in the upper-right quadrant. This is done in such a way as to form a mirror image about the center point as shown in Figure 6 .
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?