Java示例。如何创建一个类似于社交媒体网站的类?
创建并实现一个类Person。一个人有名字和朋友。将好友的姓名存储为字符串,用空格分隔。提供一个构造函数,用于构造具有给定名称(通过参数传递)且没有朋友的人。提供以下方法:Java示例。如何创建一个类似于社交媒体网站的类?,java,Java,创建并实现一个类Person。一个人有名字和朋友。将好友的姓名存储为字符串,用空格分隔。提供一个构造函数,用于构造具有给定名称(通过参数传递)且没有朋友的人。提供以下方法: public void befriend(Person p) public void unfriend(Person p) public String getFriendNames() public int getFriendCount() *提示-您可以使用p.name访问作为参数传递给方法的人员的姓名 包括一个Test
public void befriend(Person p)
public void unfriend(Person p)
public String getFriendNames()
public int getFriendCount()
*提示-您可以使用p.name访问作为参数传递给方法的人员的姓名
包括一个Tester类,以确保您的人有一些朋友
如何将朋友的姓名存储为字符串,并用空格分隔。(我必须能够输入主方法中的名称)。我也不知道如何使用“unfriend”方法摆脱已经输入的名字
主要方法:
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());
}
}
预期产出:
2
John Mike
使用参数
(Person p)
的方法出现的问题是因为您有两个不同的变量:friendName
(存在)和name
(不存在)。将变量friendName
更改为name
将处理您收到的一些错误
(同样,方法getFriendCount()
返回friendsCount
,但应该返回friendsCount
(其中有一个额外的s),并且您的作业调用名为befriend
的方法,而不是bestFriend
)
如何删除好友:
您可以通过从friendNames字符串中解析好友,然后将两个结果字符串重新连接在一起来删除好友:
public void unfriend(String name)
{
String[] parseNames = friendNames.split(name);
friendNames = parseNames[0] + parseNames[1];
friendCount--;
}
我建议更改befriend和unfriends参数以接受字符串而不是Person对象。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
这看起来不像我见过的任何JavaScript。你的意思是哪一个不同于?对不起。我把它命名错了。我是编程新手。你的问题是什么?@ErwinBolwidt我如何将朋友的名字存储为字符串,用空格分隔。(我必须能够输入主方法中的名称)。我也不知道如何通过“unfriend”的方法摆脱已经输入的名字,如果投票被否决的人告诉我我的问题出了什么问题,我会很感激,这样我就不会再犯这个错误了。我还在玩它。firstName是实际的人名(在我刚刚粘贴的主方法中,它是Alex)。我不认为它可以用于朋友的名字。那么friendNames需要是名字。让我困惑的是,你可能认为你的教授会希望你给befriend和unfriend传递一个名字,但是你却传递了这个对象,这没有任何意义,因为那些方法已经可以访问它了。我刚刚看到你的评论,让我看看。当我添加我在回答中提到的更改时,你的程序对我来说运行良好。如果你仍然有问题,那可能是我忘记了我改变的东西。让我知道。
2.0
John Mike