所以我需要为方法复制一个实例,并且必须返回一个实例。
我的问题是这个对象包含一个数组,并且还需要复制这个数组中的所有内容。
类构造函数只指定2d数组的宽度和高度,并且不能更改此类构造函数。
如何创建副本?以下我认为它不会起作用,因为它只复制数组的大小吗?
public Grid copyGrid (Grid grid) {
return new Grid(height, width);
}
答案 0 :(得分:1)
您需要确保可以访问Grid对象的所有数据(即getter和setter可用)。根据您拥有的方法类型,您的代码可能如下所示。
public Grid copyGrid(Grid grid) {
Grid g = new Grid(grid.getHeight(), grid.getWidth());
for (int row = 0; row < height; row++) {
for (int col = 0; col < width; col++) {
g.setValue(row, col, grid.getValue(row, col));
}
return g;
}
假设您可以在网格中获取和设置单个值。
答案 1 :(得分:0)
您需要自己复制元素。
public Grid copyGrid (Grid grid) {
Grid newGrid = new Grid(height, width);
for (int row = 0; row < height; row++) {
for (int col = 0; col < width; col++) {
newGrid.getArray()[row][col] = grid.getArray()[row][col];
}
}
return newGrid;
}