[英]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.