[英]Java Exarcise. How to create a class similar to social media site?
創建並實現一個類 Person。 一個人有一個名字和朋友。 將朋友的姓名存儲為字符串,以空格分隔。 提供構造一個具有給定名稱(通過參數傳遞)且沒有朋友的 Person 的構造函數。 提供以下方法:
public void befriend(Person p)
public void unfriend(Person p)
public String getFriendNames()
public int getFriendCount()
*提示 - 您可以使用 p.name 訪問作為參數傳遞給方法的 Person 的名稱。
包括一個 Tester 類,以確保您的 Person 有一些朋友。
如何將朋友的姓名存儲為字符串,以空格分隔。 (我必須能夠從 main 方法輸入名稱)。 我也不知道如何使用“unfriend”方法去掉已經輸入的名字
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());
}
}
預期輸出:
2
John Mike
您在使用參數(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 對象。 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.