我在这里有一个非常基础的课程,我试图使用我的第一个toString()方法。
public class Shoes
{
private String style;
private String color;
private double size;
public Shoes()
{
this.style = " ";
this.color = " ";
this.size = 0;
}
public Shoes(String newStyle, String newColor, double newSize)
{
this.style = newStyle;
this.color = newColor;
this.size = newSize;
System.out.println(this);
}
public String getStyle()
{
return style;
}
public void setStyle(String newStyle)
{
style = newStyle;
}
public String getColor()
{
return color;
}
public void setColor(String newColor)
{
color = newColor;
}
public double getSize()
{
return size;
}
public void setSize(double newSize)
{
size = newSize;
}
public String toString()
{
String myEol = System.getProperty("line.separator");
return new String("Style: " + style + myEol + "Color: " + color + myEol + "Size: " + size);
}
}
我试图让它在我的主类中它将在变化时打印出变量数据。现在我只知道如何在重载的构造函数中调用它,但是如何在数据从其初始化值更改后打印它?
主类的示例,如您所见,我使用默认值并重载。
public class ShoeStore
{
public static void main(String[] args)
{
Shoes nerdShoes = new Shoes();
Shoes coolShoes = new Shoes("Sandals", "Brown", 8.5);
nerdShoes.setColor("Tan");
nerdShoes.setStyle("Walking");
nerdShoes.setSize(9.5);
System.out.println("The style of nerdShoes: " + nerdShoes.getStyle());
coolShoes.setColor("Purple");
System.out.println("The style of coolShoes: " + coolShoes.getStyle());
}
}
我为修复它做了什么
public String toString()
{
String myEol = System.getProperty("line.separator");
return new String("Style: " + getStyle() + myEol + "Color: " + getColor() + myEol + "Size: " + getSize());
}
我只是调用函数而不是调用变量本身!我不知道我是怎么错过的。现在它正确打印了!
答案 0 :(得分:1)
只需添加
System.out.println(this);
每个set
方法中的。例如:
public void setStyle(String newStyle)
{
style = newStyle;
System.out.println(this);
}
答案 1 :(得分:0)
一旦使用其中一个set方法更改变量,它应自动将其分配给您的一个成员变量(字段)。打印对象时,应自动调用toString()方法,因为它会覆盖默认的toString()。
System.out.println(nerdShoes);
这将打印出来
//toString() method
("Style: " + getStyle() + myEol + "Color: " + getColor() + myEol + "Size: " + getSize());