Java Exarcise。如何创建类似于社交媒体网站的类?

时间:2016-10-07 03:08:52

标签: java

创建并实现类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());    
  }

}

1 个答案:

答案 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