Methods
13-Jul-17
Overview
In this presentation we will discuss these 4 topics:
Main method vs. Jeroo methods
Choosing behaviors to turn into methods
Writing a Jeroo method
Preconditions and postconditions
Jeroo has many built-in methods
Actions
Sensor methods
hop, turn, …
isNet? isFlower? …
The programmer can define additional methods to
extend the behavior of every Jeroo.
Behaviors and methods
Behavior = an action that an object can take or a task it
can perform in response to a request from an external
source
Method = Collection of statements written in a
programming language to describe a specific behavior.
1st define and name a behavior
2nd write code for the method
Which parts of the program should be methods?
choose a behavior
Any complex, well-defined step
Any sequence of steps that more than 1 Jeroo will perform
Any sequence of steps that occur several times.
A good behavior to turn into a method has a very clear
definition and is used more than once in the program.
Writing the method
A Jeroo method contains the code describing what any
Jeroo needs to do to carry out a particular behavior.
method method_name ( )
{
Body of method
Containing statements that
describe how any arbitrary
Jeroo can carry out this
particular behavior.
} //== method_name==
•Choose a name that is
meaningful
•Empty parenthesis
required on the header
line (first line)
•Indent code inside the
method
Important differences
Main method
Only one main method
Must be called main
Always comes first
Instantiate Jeroos
Jeroo methods
Can be many other methods
Choose your own names
Must be called by the main
method
Can’t instantiate in the
method
Example of a Jeroo method
Comments clearly explain what the
method does
//***********************************************************
//Turn Around: makes a Jeroo turn 180 degrees
//***********************************************************
Good , descriptive name for the method
method turnAround( )
{
turn(LEFT);
turn(LEFT);
}
The code is indented
Notice that no Jeroo name is
specified in the steps
// === end turnAround ===
Everything in yellow is good!
Important difference
Main method
All steps must specify which
Jeroo does each action:
objectname.method();
Example in main for a Jeroo
named betty
betty.pick();
betty.hop(2);
betty.give(AHEAD);
Jeroo methods
Define a behavior available to
ALL Jeroos so do not specify
which Jeroo performs the
steps inside the method
Example in a Jeroo method for
any Jeroo
pick();
hop(2);
give(AHEAD);
Using a Jeroo method
After you write your code
method plantCorner( )
{
plant();
hop();
turn(RIGHT);
hop();
plant();
} // === plant Corner ===
Use it just like any other method
method main( )
{
Jeroo ali = new Jeroo(5,5,8);
ali.plantCorner( );
} // === main ===
One method can call another
The plantThree method is used twice in the
plantRectangle method
method plantThree( )
{
plant( );
hop( );
B
plant( );
hop( );
plant( );
} //=== plantThree ===
method plantRectangle( )
{
plantThree( );
moveDown( );
A
plantThree( );
}//=== plantRectangle ===
Defined above
Must also
be defined
somewhere
Preconditions and Postconditions
A complete definition for a behavior includes:
Preconditions
Postconditions
Assumptions of what is true before the method is called
What will be true after the method is finished
In Jeroo, the only things that change are:
island cells (flower planted, net gone…)
Jeroo attributes (location, number of flowers …)
Things to consider when writing a precondition
What must be true for this method to work?
Ask: does the Jeroo need
A certain number of flowers?
To be facing a particular direction?
To be in a certain location?
Ask: are the contents of certain island cells important?
//********************************************
//Plant 3 flowers in a row starting at current location
//PRECONDITIONS:
//
1. There are 2 clear spaces directly in front
//
2. Jeroo has at least 3 flowers
//********************************************
method plantThree( )
{…
Things to consider when writing a postcondition
Describe what is true after the method finishes
Ask: how will the method change
the number of flowers?
the direction the Jeroo is facing?
the Jeroo’s location?
Ask: have the contents of certain island cells changed?
//
// POSTCONDITIONS:
//
1. Three flowers have been planted, starting at the
//
beginning location and proceeding straight ahead
//
2. The jeroo is standing on the last flower,
//
facing its original direction
// ********************************************
method plantThree( )
{
…
The End
© Copyright 2026 Paperzz