创建并实现类Person。一个人有一个名字和朋友。将朋友的名称存储为String,以空格分隔。提供一个构造函数,用于构造具有给定名称(通过参数传递)且没有朋友的Person。提供以下方法:
void playerAttack() {
if (playerHealth > 0 && cpuHealth > 0) {
cout << "Attack Direction (left, right, or center): ";
cin >> attack;
cout << name << " attacks from the " << attack << endl;
srand(time(0));
cpuBlock = attDir[rand() % 2];
cout << "CPU-1 blocks the " << cpuBlock << endl;
if (attack != cpuBlock) {
cpuHealth - dmg;
} else {cpuHealth = cpuHealth - (dmg + 20);}
cpuAttack();
} else if (playerHealth > 0 && cpuHealth <= 0) {
cout << "\n" << name << " has won the game.\n";
} else if (playerHealth <= 0 && cpuHealth > 0) {
cout << "\nCPU-1 has won the game.\n";
}
}
*提示 - 您可以使用p.name来访问作为参数传递给方法的Person的名称。
包含一个Tester类,以确保您的Person有一些朋友。
如何将朋友的名称存储为字符串,以空格分隔。 (我必须能够从main方法输入名称)。我也不知道如何使用方法摆脱已输入的名称&#34; unfriend&#34;
public void befriend(Person p)
public void unfriend(Person p)
public String getFriendNames()
public int getFriendCount()
主要方法:
public class Person
{
private String firstName;
private String friendNames;
private int friendCount;
public Person(String name)
{
firstName = name;
friendCount = 0;
}
public String getFriendNames()
{
return friendNames;
}
public double getFriendCount()
{
return friendCount;
}
public void befriend(String name)
{
friendNames = friendNames + " " + name;
friendCount++;
}
public void unfriend(String name)
{
String[] parseNames = friendNames.split(name);
friendNames = parseNames[0] + parseNames[1];
friendCount--;
}
}
预期产出:
public class PersonTester {
public static void main(String[] args) {
Person p = new Person("Alex");
p.befriend("John");
p.befriend("Alice");
p.befriend("Mike");
p.befriend("Annette");
p.unfriend("Alice");
System.out.println(p.getFriendCount());
System.out.println(p.getFriendNames());
}
}
答案 0 :(得分:0)
使用参数(Person p)
的方法遇到的问题是因为您有两个不同的变量:friendName
(存在)和name
(不存在)。将变量friendName
更改为name
会处理您收到的一些错误。
(方法getFriendCount()
也返回friendsCount
,但应该返回friendCount
(你还有一个额外的s),你的作业要求一个名为befriend
的方法,不是bestFriend
。)
如何删除朋友:
您可以通过从friendNames字符串中解析朋友,然后将两个结果字符串连接在一起来删除朋友:
public void unfriend(String name)
{
String[] parseNames = friendNames.split(name);
friendNames = parseNames[0] + parseNames[1];
friendCount--;
}
我建议更改befriend和unfriends参数以接受String而不是Person对象。人已经可以访问它自己的对象了,而在你的主要文件中你正试图传递它们。这是朋友的样子:
public void befriend(String name) //Changed to "befriend"
{
friendNames = friendNames + " " + name;
friendCount++;
}
此外,您只需要一个Person的构造函数,它应如下所示:
public Person(String name)
{
firstName = name;
friendCount = 0;
}
当我运行你的程序时(使用这些更改),我得到以下输出:
2.0
John Mike