我正在编写一个社交媒体的简单模型,其中用户朋友被表示为Friend
对象的数组。
使用主方法中的方法toStringFriends
,我得到标题错误。有人知道如何解决此问题吗?
public class Friend {
private String name;
private String password;
private int uid;
private Friend [] friends;
public Friend (String name, String password, int uid, Friend [] friends) {
this.name = name;
this.password = password;
this.uid = uid;
this.friends [0] = friends [0];
}
public Friend [] getFriends () {
return friends;
}
public String toStringFriends (Friend [] friends) {
String s = "";
for (int i = 0; i <= friends.length; i++) {
s = s + (friends [i]).getName();
}
return s;
}
}
public class Main {
public static void main(String[] args) {
Friend [] noFriends = new Friend [0];
Friend [] laurasFriends = new Friend [1];
Friend jack = new Friend ("jack","liverpool",1,noFriends);
laurasFriends [0] = jack;
Friend laura = new Friend ("laura","everton",2,laurasFriends);
String s = toStringFriends(laurasFriends);
System.out.println(s);
System.out.println(toStringFriends(laura.getFriends()));
}
}
答案 0 :(得分:0)
使toStringFriends()
静态或实例化Friend对象并在其上调用该方法。
答案 1 :(得分:0)
您需要从laura
的对象实例中调用它:
String s = laura.toStringFriends(laurasFriends);
答案 2 :(得分:0)
通过创建Friend类对象来使用它-
http://www.tribunalconstitucional.pt/tc/acordaos/tc/acordaos/?impressao=1
或将toStringFriends()设为静态,然后使用Friend类对其进行调用。
答案 3 :(得分:0)
toStringFriends
可以访问friends
和name
,因此如果传递任何内容,我将传递一个分隔符。我也更喜欢StringBuilder
而不是在循环中使用String
串联。而且我在课堂上没有看到getName()
,但是Friend
可以访问自己的数据。然后,<=
将导致数组索引超出范围,因为有效的数组索引为0
至friends.length - 1
。所以你可以做类似的事情,
public String toStringFriends(String sep) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < friends.length; i++) {
if (i != 0) {
sb.append(sep);
}
sb.append(friends[i].name);
}
return sb.toString();
}
然后在构造函数中将this.friends [0] = friends [0];
更改为this.friends = friends;
,最后像这样调用toStringFriends
String s = laura.toStringFriends(",");
答案 4 :(得分:0)
没有对象就不能调用实例或非静态方法。您应该使用一些实例对象,然后可以通过.
运算符进行调用。
像object.method()