当我试图在我的标签中打印每个元素时,我会得到这种语法: 为什么?感谢
public class Solo {
public int val;
public Solo(int val){
this.val=val;
}
public static void print(Solo[] tab){
for (Solo s : tab) {
System.out.println(s);
}
Solo s1 = new Solo (1);
Solo s2 = new Solo (2);
Solo s3 = new Solo (3);
Solo s4 = new Solo (4);
Solo[] tab = {s1,s2,s3,s4};
print(tab);
输出:
cours4.Solo@15db9742
cours4.Solo@6d06d69c
cours4.Solo@7852e922
cours4.Solo@4e25154f
答案 0 :(得分:0)
cours4.Solo@15db9742 cours4.Solo@6d06d69c cours4.Solo@7852e922 cours4.Solo@4e25154f
是你的实例化对象, 执行此操作以打印对象属性:
public static void print(Solo[] tab){
for (Solo s : tab) {
System.out.println(s.val);
}
答案 1 :(得分:0)
这些都是对象而不是变量。您应该打印变量
所以使用
System.out.println(s.val);
答案 2 :(得分:0)
您已创建Solo对象并将其添加到Solo类型的Array中,然后打印Array对象。 从根本上说,你做错了。如果要打印对象,则必须调用Object类的toString()或覆盖类Solo中的toString()方法,如下所示。我相信它会奏效。
public String toString() {
return val+"";
}
答案 3 :(得分:0)
您正在尝试打印Object
s。 s1
,s2
,s3
和s4
是对象。如果您尝试打印Object
,则会打印Object
的参考(地址)。这不是语法错误。
如果要打印对象中的值,则应覆盖toString()
类中的Solo
方法。
public String toString() {
return "Value:" + val;
}
然后会打印出来:
Value:0
Value:0
Value:0
Value:0
因为您没有使用值初始化对象。但是,您在创建对象时调用了默认构造函数,int
字段的默认值为0.
答案 4 :(得分:-1)
s1,s2,s3和s4是打印对象地址的对象,用于打印访问变量所需的值