gpt4 book ai didi

java - 方法不返回给用户(继承)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:08 25 4
gpt4 key购买 nike

我正在尝试将驱动程序中的值读入 HashMap 到单独的 abstract 程序中。之后,我希望将内容打印给用户。但是,当我调用该方法时,什么也没有发生

游戏驱动程序

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);
}

}

}
}

英雄.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();

}
}

Driver 读入一个 .txt 文件这里是一个例子

.TXT

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

最后是我的输出与期望的输出

当前输出

Rick Grimes
Rick Grimes

期望的输出

Rick Grimes
Rick Grimes rescued Carl 100pts!

感谢所有提供帮助的人!询问是否需要任何说明

编辑 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");
}
}

最佳答案

在游戏驱动程序中:

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

Hero类中的rescue方法:

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;
}

然后我获得了所需的输出。

关于java - 方法不返回给用户(继承),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27541011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com