Question: Getting Started Create a class called Lab6 and a class called SuperHero . Be sure to import the Scanner class in Lab6 . Be sure

Getting Started Create a class called Lab6 and a class called SuperHero . Be sure to import the Scanner class in Lab6 . Be sure to name your files Lab6.java and SuperHero.java , respectively. Also, make sure the files are saved in the same directory. Task Overview Remember that creating by creating a class, we are defining a Java Object. These objects are often used to model various real-world objects. The overall goal of this lab is to create a class to model a superhero. This SuperHero class will then be tested using the Lab6 driver class. Part 1: Defining the Class The first part of creating any class is to declare it as a class. The overall set up for the SuperHero class when the lab is done should look something like the code below. Copy it to your SuperHero.java file. public class SuperHero { // instance variables go below here // the two constructors go below here // getNumberOfHeroes() goes below here // recordSave() goes below here // the second recordSave method goes here // killHero() goes below here // printSuperHeroRecord() goes below here } Part 2: Defining the Instance Variables Instance variables are used to define different traits about an object. In the SuperHero class, define the following instance variables in the appropriate place: numberOfHeroes , a static int heroName , a String secretIdentity , a String numberOfLifeChances , an int numberOfPeopleSaved , an int Notes & Hints Be sure to declare all of your instance variables as private , as we do not want other programs to have direct access to them. numberOfHeroes needs to be a static variable, because its value needs to be the same between all instances of the SuperHero class. You can read about static instance variables on page 400 or see the video example. 2 As an example for the other three, the heroName instance variable is written below: private String heroName; The section on instance variables starts on page 371. Part 3: Creating the Constructors The purpose of a constructor is to define the instance variables of the object upon its creation. By allowing for arguments to be passed into the constructor, these instance variables can be easily customized. For example, the following constructor will allow for the heroName , secretIdentity , and numberOfPeopleSaved to be customized: public SuperHero(String initHeroName, String initSecretIdentity, int initPeopleSaved) { numberOfHeroes++; // one more hero created numberOfLifeChances = 2; // start the hero with two lives heroName = initHeroName; secretIdentity = initSecretIdentity; numberOfPeopleSaved = initPeopleSaved; } Include this code in the constructor section of your SuperHero class. Notice how numberOfHeroes and numberOfLifeChances are explicitly defined in the constructor, while the values of the other instance vari- ables depend on what was passed into the constructor. Now, create another constructor that will only take one parameter for the heros name. The constructor should contain the following (you can place it below the first one): Only allow the heroName as a parameter for the constructor Use the same code for defining the numberOfHeroes and the numberOfLifeChances Set the heroName attribute to the parameter passed into the constructor Set the secretIdentity to "unknown" Set numberOfPeopleSaved to 0 When this part is completed, you will have a SuperHero class with two constructors. The following calls will be valid calls to one of the constructors: SuperHero hero1 = new SuperHero("Superman", "Clark", 1000); SuperHero hero2 = new SuperHero("Batman"); The section on constructors start on page 375. Part 4: Creating the Other Methods Now that we have the instance variables and constructors made, we need to define some other methods to make the class useful. Method: getNumberOfHeroes First, we will create an accessor method to return the number of heroes. To do this, simply fill in the body of this method: public static int getNumberOfHeroes() { // Put something here (only 1 line is required) } 3 Method: recordSave Next, we will create a method to keep track of when the hero saves someone. This method will simply increment the numberOfPeopleSaved instance variable by 1. This method is given to you below. Include it in your lab. public void recordSave() { numberOfPeopleSaved++; } Now, create another method called recordSave . This time, require an integer, called num , as input. Inside of the method, increment the number of people saved by this value. This allows a hero to save multiple people at once. An unfinished version of this is given below: public void recordSave() { // Increment numberOfPeopleSaved by num } Method: killHero If a hero is defeated by his/her enemy, they should lose a life. This is represented by decreasing numberOfLifeChances by 1. However, the hero cannot possibly die if they have no lives. So, if the hero has no lives left, display a message stating as such. The code is partially given to you below: public void killHero() { if () { // Decrease numberOfLifeChances by 1 } else { // Print a message saying the hero is dead } } Method: printSuperHeroRecord This method will simply print out the different attributes of the hero. The output should look like the following: Name: Superman Secret Identity: Clark Status: Alive People Saved: 1000 Note that if the hero has no lives left, the status should be Dead. Hints for this method Use what you know about printing messages and variables - use the instance variables where appropriate inside of your print statements. You can use the same logic as the killHero() method to detect whether the hero is alive. Thus, you will need to use an if-else statement inside of this class. Since you will be printing all relevant output to the console, you do need to return anything.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!