void方法中使用的void方法的数组组成?(爪哇)
我大约两周前开始学习Java,所以请不要挑剔。 我用一个二维数组(一张图片)来做这个程序,我想把它旋转90度(已经做过,测试过了,可以正常工作)和180度。我的方法是无效的,我想使用90度1两次(合成?)在180度方向,但它不起作用
这是我的方法:
public void rotate90(){
for (int r = 0; r < w; r++) {
for (int c = 0; c < h; c++) {
imageMatrix[c][w-r-1] = imageMatrix[r][c];
}
}
public void rotate180(){
rotate90(rotate90()); // my idea was to rotate again the already rotated matrix, but since rotate90 is void it doesn't work
}
我有办法做到这一点吗?用空函数
提前谢谢
# 1 楼答案
您只需要调用该方法两次。您不能做的是使用返回值
rotate90()
调用rotate90
,这就是您建议的代码所做的,因为该方法不接受参数或返回值# 2 楼答案
如果只想调用一次,可以将其作为参数传递
附言: 如果确实要将其用作rotate90(rotate90),则需要返回矩阵,而不是将函数设为void
# 3 楼答案
方法
rotate90()
没有相应的参数。其实这不是正确的方法第一种方法是把它写出来
或者使用
for-cycle
但是,这里有一种方法,可以仅使用一种方法将其旋转多少次:
然后是
rotate180()
方法:# 4 楼答案
您的
rotate90()
直接处理全局变量,因此您的rotate180()
也会处理全局变量但是,如果我建议严格使用一些全局变量,那么我将使用ESARY。另外,我不确定你的算法是否正确,我会这样做
不需要将它们设置为
static
,但是因为它们不需要对象来工作,所以可以将它们移动到Utils
类或其他地方