You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Matrix类的flipVertically方法并返回矩阵对象?

解答你的Matrix垂直翻转问题

让我来帮你逐个解决这两个问题:

问题1:报错原因与修复方案

你遇到的Matrix required but array found错误,主要有两个直接原因,还有一个隐藏的语法问题:

错误原因

  1. 对象访问方式错误:newArray是Matrix类的实例对象,不是二维数组,你不能直接用newArray[row][column]这种数组索引的方式访问它的元素——因为Matrix内部的array是私有成员变量,就算是类内方法,也不能把对象当数组直接操作。
  2. 数组索引越界+逻辑错误:array[size1][size2]本身就是错误写法——Java数组索引从0开始,size1是矩阵总行数,最大行索引是size1-1;size2是总列数,最大列索引是size2-1,这里不仅会触发数组越界异常,而且完全不符合你想要的“对应原矩阵元素”的逻辑。
  3. 隐藏语法问题:你的flipVertically方法定义在了Matrix类外面,这不符合Java语法,必须把它放到Matrix类内部作为成员方法,才能访问类的私有成员array、size1、size2。

修复后的完整代码

我调整了方法位置,并且实现了正确的垂直翻转逻辑:

public class Matrix { 
    private final int[][] array; 
    private final int size1; 
    private final int size2; 

    Matrix(int size1,int size2) { 
        this.size1=size1; 
        this.size2=size2; 
        this.array=new int[size1][size2]; 
    } 

    Matrix(int[][] color) { 
        this.size1=color.length; 
        this.size2=color[0].length; 
        this.array= new int[size1][size2]; 
        for(int row=0;row<size1;row++) { 
            for(int column=0;column<size2;column++) { 
                this.array[row][column]=color[row][column]; 
            } 
        } 
    } 

    // 将方法移到类内部作为成员方法
    public Matrix flipVertically() { 
        // 创建存储翻转结果的二维数组
        int[][] flippedArray = new int[size1][size2];
        for(int row=0; row < size1; row++) {
            // 新数组的第row行,对应原数组的倒数第row+1行(即size1-1-row行)
            for(int column=0; column < size2; column++) {
                flippedArray[row][column] = array[size1 - 1 - row][column];
            }
        }
        // 用翻转后的数组创建新Matrix对象返回
        return new Matrix(flippedArray); 
    } 
}

问题2:返回“Matrix变量”的含义与形式

返回“Matrix变量”其实就是返回一个Matrix类的实例对象。

在Java中,Matrix是你定义的类(相当于一个模板),而“Matrix变量”就是根据这个模板创建出来的具体对象——它包含了自己的array数组、size1和size2属性,是一个完整的、可以正常使用的矩阵实例。

你代码里的return newArray;就是返回Matrix变量的标准形式:先创建一个符合要求的Matrix对象(比如上面修复后的代码里,我们用翻转后的数组生成了新的Matrix),然后用return关键字把这个对象返回给调用方,调用方拿到这个对象后,就能像使用其他Matrix实例一样操作它。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:46:24