这是我的图类tostring方法(超类)
public String toString() {
return "x=" + x + ", y=" + y + ", color=" + color ;
}
这是Rectangular类的tostring方法(扩展图类)
@Override
public String toString() {
return "Rectangle [ "+ super.toString() + ", width=" + width + ", length=" + length+ "]\n";
}
我想通过拆分此tostring方法再次绘制一个矩形来仅取x,y,颜色,宽度和长度的值。
我的整个程序必须通过点击2点来绘制矩形。当我单击退出按钮时,它会将矩形对象保存在文本文件中。当我再次运行时,它必须弹出我绘制的先前形状。我需要先前的点通过使用这些点再次绘制矩形。 任何帮助表示赞赏。
答案 0 :(得分:0)
为了覆盖Rectangle类中的toString(),您的Figure类必须是Rectangle的子类。不是像你这样的超级班。用这个:
public class Figure extends Rectangle { /* Other code here */ }
然后,您需要在toString()方法中使用Rectangle子类中的值。由于Rectangle类没有getColor()方法,因此需要在自己的Figure类中创建它。它应该是这样的:
@Override
public String toString(){
/* this.getX(): returns the X values stored in the subclass Rectangle
this.getY(): returns the Y values stored in the subclass Rectangle
getColor(): returns the color stored in the figure class. This is the
method that will be defined by you.
*/
return "x=" + this.getX() + ", y=" + this.getY() + ", color=" + getColor();
}
答案 1 :(得分:0)
按如下方式更改toString();
方法:
图类tostring方法(超类)
public String toString() {
return "x-"+ x + "-y-" + y + "-color-" +color ;
}
这是Rectangular类的tostring方法(扩展图类)
@Override
public String toString() {
return super.toString()+"-width-" + width + "-length-"+length+ ";
}
然后使用正则表达式"-"
String [] splittedString = rectangleObject.toString().split("-");
然后从数组中分配值,例如
String x = splittedString[1];
String y = splittedString[3];
String color = splittedString[5];
String width = splittedString[7];
String length = splittedString[9];