Static


Static

EvilRobot class with static
EvilRobotHarness


Classwork


Create a class Raptor.  Each Raptor has a health, which starts at 50.  Add the usual methods. 

 

Give the Raptor class a static variable population which is an array of Raptors (no accessor or mutator).  Also, a variable to keep track of the first empty spot in the array, which is also a count of the total number of Raptors in the population.  Also create a public static constant int MAX_POP, which is 100.   Don't provide accessors or mutators for any of these.

In a static block, set up the array to be size MAX_POP. 

Add a static method populationSize that returns how many Raptors are currently in the array.

Add a static int preyPopulation, and in the static block, start this at 50.  Do provide accessor and mutator for this.

Add a static method addRaptor, which takes a Raptor and adds it to the population array if there is still room. 

 

Every time a new Raptor is created, add that raptor to the population array.  (Don't worry about what happens to Raptors when there isn't room in the array -- we'll just assume excess Raptor eggs are eaten by something).

 

 Add a (non-static) method hunt in Raptor 

 

Add a (non-static) method reproduce. 

 Add a static method day() During a day:

In a separate class with a main

 

 

[EC+30]

Add a static  method cleanOut, which runs through the population looking for dead (health less than 1) Raptors.  Each one it finds, it removes by moving the last Raptor currently in the array into that spot, and then decreasing the count of raptors in the population by one.   (Don't assume there's only 1 dead Raptor!)  Call cleanOut at the end of each day.

Make sure your code handles cases like the following  with L being a live Raptor and D a dead Raptor (and the rest of the array full of nulls, not that this matters). Clearly comment your code to explain how your solution works!

LDLLD

LLLLD

LDLLDD

LDLDLDDDDL

DDDDD

D