Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Method not returning to user (inheritance)

I am trying to read in values to a HashMap from a Driver program to a separate abstract program. After that, I want the contents to be printed to the user. However, when I call the method nothing happens

GameDriver

import java.io.*;
import java.util.*;
import java.awt.*;

public class GameDriver {

    public static void main(String[] args) throws FileNotFoundException {

        String s;
        File f = new File (args[0]);
        Scanner input = new Scanner(f);
        while (input.hasNext()) {
            s = input.next();
            if (s.equalsIgnoreCase("h")) { 
                Hero c1 = new Cop();
                System.out.println(c1); 
            }

            if (s.equalsIgnoreCase("r")) { 
                Hero c2 = new Cop();
                String cn = input.next();
                int pts = input.nextInt();
                c2.newMap.put(cn, pts);
                c2.rescue();
                System.out.println(c2);
            }

        }

    }
}

Hero.java

import java.util.*;
import java.io.*;
import java.awt.*;

public abstract class Hero extends Character
{
   private String heroname1;
   public Hero() {
          heroname1 = "Rick Grimes"; //the default player name
   }
   HashMap<String, Integer> newMap = new HashMap<String, Integer>();

   public Hero(String newhero) {
          if (newhero.length() > 0) {
               heroname1 = newhero;
          } else { heroname1 = "Rick Grimes"; } //defaulted as protagonist
   }

   public String getHeroName() {
          return heroname1; //return the name
   }

   public String rescue() { //class to rescue people or things
          return " rescued " + newMap + "pts!";
   }

   public String toString() { //print
          return heroname1 + rescue();

   }
}

The Driver reads in a .txt file here is a sample

.TXT

c h Rick Grimes//create hero
r Carl 100 //rescue name and point value

and finally my output vs desired output

Current Output

Rick Grimes
Rick Grimes

Desired Output

Rick Grimes
Rick Grimes rescued Carl 100pts!

Thank you to anyone who helps! Ask if you need any clarification

EDIT Cop.java

import java.io.*;
import java.util.*;
import java.awt.*;

public class Cop extends Hero {
   public Cop() {
         super();
   }
   public void hero1(String newhero) {
          newhero = getHeroName(); //get name from the Hero class
   }
   public void lieDetect() { //unique ability for cops
          System.out.println("Cops can tell the good from the bad");
   }
}
like image 684
Junikin Avatar asked Apr 16 '26 08:04

Junikin


1 Answers

In GameDriver :

if (s.equalsIgnoreCase("h")) { 
    Hero c1 = new Cop();
    System.out.println(c1.getHeroName()); 
}

The rescue method in the class Hero :

public String rescue() { //class to rescue people or things
       String toReturn = "";
       for(String _key : newMap.keySet()) {
           toReturn += " rescued " + _key + " " + newMap.get(_key) + "pts!";
       }
       return toReturn;
   }

And I obtain the desired output.

like image 124
Michaël Avatar answered Apr 17 '26 20:04

Michaël



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!