Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level...
-
Upload
louisa-tyler -
Category
Documents
-
view
214 -
download
2
Transcript of Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level...
![Page 1: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/1.jpg)
Methods in Java
CSC1401
![Page 2: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/2.jpg)
Overview
In this session, we are going to see how to create class-level methods in Java
![Page 3: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/3.jpg)
Setting the Pen Width
You can change the width of the trail the pen leavesWorld world1 = new World();
Turtle turtle1 = new Turtle(world1);
turtle1.setPenWidth(5);
turtle1.forward(100);
![Page 4: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/4.jpg)
Drawing a Letter
How would you use a turtle to draw a large letter T?Process
Create a World variable and a World object and a Turtle variable and object. Ask the Turtle object to go forward 100Ask the Turtle object to pick up the penAsk the Turtle object to turn left Ask the Turtle object to go forward 25Ask the Turtle object to turn 180 degreesAsk the Turtle object to put down the penAsk the Turtle object to go forward 50
![Page 5: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/5.jpg)
Drawing a T
World world1 = new World();
Turtle turtle1 = new Turtle(world1);
turtle1.forward(100);
turtle1.penUp();
turtle1.turnLeft();
turtle1.forward(25);
turtle1.turn(180);
turtle1.penDown();
turtle1.forward(50);
![Page 6: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/6.jpg)
Creating a Method
We can name a block of Java statements and then execute them again
By declaring a method in a class
The syntax for declaring a method isvisibility returnType name(parameterList)
Visibility determines access Usually public or private
The return type is the type of thing returned
If nothing is returned use the keyword void
Name the method starting with a lowercase word and uppercasing the first letter of each additional word
![Page 7: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/7.jpg)
Example Method
public void drawSquare()
{
this.turnRight();
this.forward(30);
this.turnRight();
this.forward(30);
this.turnRight();
this.forward(30);
this.turnRight();
this.forward(30);
}
The visibility is public
The keyword void means this method doesn’t return a value
The method name is drawSquare
There are no parametersNotice that the
parentheses are still required
The keyword this means the object this method was invoked on
![Page 8: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/8.jpg)
Adding a Method to a ClassOpen the file Turtle.java (found on the P: drive)
Save it on your J: drive (wherever you have been saving your TurtleTester program)Type the method before the last } // end
Compile the Turtle.java file, but do not run it
![Page 9: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/9.jpg)
Compile Errors
Clicking on the error takes you to the code and highlights it.
Case matters in Java! turnright isn’t the same as turnRight
![Page 10: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/10.jpg)
Try the New Method
Compiling resets the interactions paneClearing all variables
But you can still use the up arrow to pull up previous statements
You will need to create a world and turtle againWorld world1 = new World();
Turtle turtle1 = new Turtle(world1);
turtle1.forward(50);
turtle1.drawSquare();
turtle1.turn(30);
turtle1.drawSquare();
![Page 11: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/11.jpg)
Better Method to Draw a Square
A method to draw a square public void drawSquare() { int width = 30; this.turnRight(); this.forward(width); this.turnRight(); this.forward(width); this.turnRight(); this.forward(width); this.turnRight(); this.forward(width); }
We added a local variable for the width
Only known inside the method
This makes it easier to change the width of the squareBut, we still have to recompile to draw a different size square
![Page 12: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/12.jpg)
Testing the Better Method
Type the following in the interactions paneWorld world1 = new World();
Turtle turtle1 = new Turtle(world1);
turtle1.forward(50);
turtle1.drawSquare();
turtle1.turn(30);
turtle1.drawSquare();
![Page 13: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/13.jpg)
Passing a Parameter
public void drawSquare(int width)
{
this.turnRight();
this.forward(width);
this.turnRight();
this.forward(width);
this.turnRight();
this.forward(width);
this.turnRight();
this.forward(width);
}
Parameter lists specify the type of thing passed and a name to use to refer to the value in the method
The type of this parameter is int
The name is width
Values are passed by making
a copy of the passed value
![Page 14: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/14.jpg)
Testing with a Parameter
Type the following in the interactions paneWorld world1 = new World();
Turtle turtle1 = new Turtle(world1);
turtle1.forward(50);
turtle1.drawSquare(30);
turtle1.turn(30);
turtle1.drawSquare(50);
![Page 15: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/15.jpg)
How Does That Work?
When you ask turtle1 to drawSquare(30)turtle1.drawSquare(30);
It will ask the Turtle Class if it has a method drawSquare that takes an int value
And start executing that method The parameter width will have the value of 30 during the executing of the methodThe this keyword refers to turtle1
When you ask turtle1 to drawSquare(50)turtle1.drawSquare(50);
The width will have a value of 50The this refers to turtle1 (the object the method was invoked on)
![Page 16: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/16.jpg)
Revisiting turtle spelling
Creating methods to spell my nameThe V was not easy to create – let’s figure out how to do it!
![Page 17: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/17.jpg)
Challenges
Create a method for drawing a rectanglePass the width and height
Create a method for drawing an equilateral triangle
all sides have the same lengthPass in the length
Create a method for drawing a diamondCreate a method for drawing a house
Using the other methods
Create a method for drawing a schoolUsing the other methods
![Page 18: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/18.jpg)
Summary
You can create objects from classes in Alice and Java
Each object needs a unique way to reference it
In Java we call this declaring a variable
You can create new methodsvisibility returnType name(Type name, Type name, …)
Let’s you reuse a block of statements
![Page 19: Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.](https://reader036.fdocuments.us/reader036/viewer/2022083008/56649ec55503460f94bcfd92/html5/thumbnails/19.jpg)
Assignment
Read Media Computation Chapter 3, Section 5
Methods
Parameters and arguments
Also, please look at the Javadoc for the Turtle class, available at:
p:\scooper\BookClasses1.5\doc\Turtle.html