繁体   English   中英

Java 2d数组长度的Setter和Getter

[英]Setter and Getter for Java 2d array length

我做了一个涉及2d数组的java项目的结构化代码,现在我试图使我的代码面向对象。 我正在尝试访问2d数组的长度,但是我很挣扎。

我的结构化代码有以下内容:

private static char[][] environment = new char[0][];

我一直在使用environment.length; 方法内部

但是当我尝试切换到OOP时,在访问不同类的环境长度时遇到了麻烦。 我是否使用一个集合并得到这样的结果:

 public static char[][] getEnvironment() {
        return environment;
    }

    public static void setEnvironment(char[][] environment) {
        MyClass.environment = environment;
    }

然后访问这样的长度:

MyClass.getEnvironment().length

可以吗? 还有其他方法吗? 当我有2D数组的输入时,我也遇到问题。

我在结构化版本中使用它:

if ( y<= environment[y].length - 1)

我可以在OOP中这样做吗?

if (y<= MyClass.getEnvironment().length - 1)

我不知道如何在上面的代码中合并y。

我认为您想要做的是创建替换原始逻辑的方法。

如果您像这样在char[][]上使用length方法,

if (y <= environment[y].lenght - 1)

您可以使用以下方式封装行为以供重用:

public static int getEnvironmentLengthAt(int y) { return environment[y].length; }

我认为MyClass.getEnvironment().length可能无法正常工作,因为您正尝试返回二维数组的长度,并且您的比较位于该二维数组中的特定行上。

在没有更多上下文的情况下, MyClass.getEnvironment(y).lenght可能对您更好,但是您必须拥有这样的方法声明,

public static char[] getEnvironment(int y){ return environment[y]; }

支持上述方法调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM