chapter 2 - the first program: little crab bruce chittenden
TRANSCRIPT
![Page 1: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/1.jpg)
Chapter 2 - The First Program: Little Crab
Bruce Chittenden
![Page 2: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/2.jpg)
2.1 Little Crab Scenario
InheritanceThe Arrows Denote Hierarchy
Crab is an AnimalAnimal is an ActorTherefore, It Follows ThatThe Crab is Also an Actor
![Page 3: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/3.jpg)
Exercise 2.1
Click Run and Nothing Happens
![Page 4: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/4.jpg)
Exercise 2.1
Right Click the Crab ClassClick On Open Editor
![Page 5: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/5.jpg)
Exercise 2.1
When Run is Clickedthe Crab does nothing
This is because there is no Source Code in the act Method for the Crab.
![Page 6: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/6.jpg)
2.2 Making the Crab Move
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/* * This class defines a crab. Crabs live on the beach. */public class Crab extends Animal{ public void act() { // Add your action code here }}
Replace the comment withmove();
![Page 7: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/7.jpg)
Code 2.1
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/* * This class defines a crab. Crabs live on the beach. */public class Crab extends Animal{ public void act() { move(); }}
![Page 8: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/8.jpg)
Exercise 2.2
Add the call to move( );Click Compile
![Page 9: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/9.jpg)
Exercise 2.2
Right Click on the Crab ClassDrag a Crab into the WorldClick the Act and Run Buttons
![Page 10: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/10.jpg)
Exercise 2.2
Crab Moves to Edge of the World
![Page 11: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/11.jpg)
Exercise 2.3
Place Multiple Crabs into the WorldClick the Act and Run Buttons
![Page 12: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/12.jpg)
Exercise 2.3
Crabs All Move to Edge of the World
![Page 13: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/13.jpg)
2.3 Turning
public void act (){ turn (5);}
![Page 14: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/14.jpg)
Exercise 2.4
Set turn to 5 and recompile
![Page 15: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/15.jpg)
Exercise 2.4
Crab Spins to the Right
![Page 16: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/16.jpg)
Exercise 2.5
Set turn to -5 and recompile
![Page 17: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/17.jpg)
Exercise 2.5
Crab Spins to the Left
![Page 18: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/18.jpg)
Code 2.2
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/* * This class defines a crab. Crabs live on the beach. */public class Crab extends Animal{ public void act() { move (); turn (5); }}
![Page 19: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/19.jpg)
Exercise 2.6
move and turn
![Page 20: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/20.jpg)
Exercise 2.6
Crab moves in a circle
![Page 21: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/21.jpg)
Exercise 2.7
Syntax Error - Expected Semicolon
![Page 22: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/22.jpg)
Exercise 2.8
1. ‘;’ expected2. cannot find symbol - method Move()3. turn(int) in Animal cannot be applied to (int,int)4. turn(int) in Animal cannot be applied to (double)5. act() in Crab cannot override act() in Animal; attempting to
use incompatible return type6. cannot find symbol - class voids7. unclosed comment8. class, interface, or enum expected9. illegal start of type10. illegal start of expression
![Page 23: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/23.jpg)
Exercise 2.8
![Page 24: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/24.jpg)
Exercise 2.8
![Page 25: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/25.jpg)
Exercise 2.8
![Page 26: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/26.jpg)
Exercise 2.8
![Page 27: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/27.jpg)
Exercise 2.8
![Page 28: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/28.jpg)
Exercise 2.8
![Page 29: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/29.jpg)
Exercise 2.8
![Page 30: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/30.jpg)
Exercise 2.8
![Page 31: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/31.jpg)
Exercise 2.8
![Page 32: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/32.jpg)
Exercise 2.8
![Page 33: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/33.jpg)
2.4 Dealing with Screen Edges
Right Click on Animal Classand Click on Open editor
![Page 34: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/34.jpg)
Documentation View
Switch Between Source and Documentation
Method Summary
![Page 35: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/35.jpg)
Exercise 2.9
![Page 36: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/36.jpg)
Method Signatures
void turn (int angle)boolean atWorldEdge ( )void move ( )
Return Type
Method Name
Parameters
![Page 37: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/37.jpg)
Source for atWorldEdge ( )
/* * Test if we are close to one of the edges of the world. Return true is we are. */public boolean atWorldEdge(){ if(getX() < 20 || getX() > getWorld().getWidth() - 20) return true; if(getY() < 20 || getY() > getWorld().getHeight() - 20) return true; else return false;}
![Page 38: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/38.jpg)
Exercise 2.10
Right Click on the Crab and Select inherited from Animal
Then Click on atWorldEdge ( )
![Page 39: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/39.jpg)
Exercise 2.10
![Page 40: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/40.jpg)
Exercise 2.11
Move the Crab to the Edge of the World and Repeat the Experiment
![Page 41: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/41.jpg)
Exercise 2.11
![Page 42: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/42.jpg)
Code 2.3import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/* * This class defines a crab. Crabs live on the beach. */public class Crab extends Animal{ public void act() { if ( atWorldEdge ( ) ) { turn (17); } move ( ); }}
![Page 43: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/43.jpg)
Exercise 2.12
![Page 44: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/44.jpg)
Exercise 2.12
Crab Runs Around the World Turning when it Encounters a Wall
![Page 45: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/45.jpg)
Exercise 2.13
Set the Turn to 180 and the Crab Should Reverse Direction
![Page 46: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/46.jpg)
Exercise 2.13
Crab Moves from Side to Side
![Page 47: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/47.jpg)
Exercise 2.14
Place the move () Inside the if Statement
![Page 48: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/48.jpg)
Exercise 2.14
If the Crab is Not Near the Edge Nothing Happens.If the Crab is at the Edge, Then It Turns Around.
![Page 49: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/49.jpg)
2.5 Summary of Programming Techniques
In this chapter, we have seen how to call methods such as move( ), with and without parameters. This will form the basis for all further Java Programming.
We have encountered a glimpse of inheritance. Classes inherit the methods from their superclasses.
And, very important we have seen how to make decisions. We have used an if-statement for conditional execution.
![Page 50: Chapter 2 - The First Program: Little Crab Bruce Chittenden](https://reader038.vdocuments.net/reader038/viewer/2022102707/56649ce15503460f949aca20/html5/thumbnails/50.jpg)
Concept Summary