【问题标题】:How do I use variables declared in one method, in another method.如何在另一种方法中使用在一种方法中声明的变量。
【发布时间】:2015-03-03 00:39:01
【问题描述】:

所以我有一个看起来像这样的方法:

public Maze(String[] textmaze, int startRow, int startCol, int finishRow, int finishCol){
    int numRows = textmaze.length;
    int numCols = textmaze[0].length;
    int [][] x = new int[numRows][numCols];
    }

所以我想在其他方法中使用变量 x、numRows 和 numCols 但是 numRows 和 numCols 需要必须作为参数传入的 String textmaze 并且调用此方法的主要方法在另一个类中,我m 不允许修改。那么如何在其他方法中使用这些变量呢?

【问题讨论】:

  • 1- 这不是方法,而是构造函数; 2-在那种情况下,你有没有想过为他们提供吸气剂......?
  • 我从来没有在java中使用过这样的构造函数,我也不知道getter是什么。
  • getter 是一种访问器方法,它只是一种允许您从对象中“获取”值的方法。虽然您可能从未写过,但我相信您已经以​​一种或另一种形式遇到过它们

标签: java class variables methods


【解决方案1】:

由于Maze是一个构造函数,并且你想在类的其他部分使用变量,你应该将变量改为实例字段,例如......

private int numRows;
private int numCols;
private int [][] x;

public Maze(String[] textmaze, int startRow, int startCol, int finishRow, int finishCol){
    numRows = textmaze.length;
    numCols = textmaze[0].length;
    x = new int[numRows][numCols];
}

这将允许您从 THIS (Maze) 类上下文中访问变量。

根据您想要做什么,您还可以为字段提供访问器以允许子类访问它们(使用protected 防止包外部的其他类访问它们,或者如果您想要其他类使用public类来访问它们)...

public int getNumRows() {
    return numRows;
}

查看Understanding Class MembersControlling Access to Members of a Class 了解更多详情

【讨论】:

  • 我现在有另一个问题。因此,由于某种原因,当我编译它时,我不断收到一条错误消息,指出它无法在 numCols = textmaze[0].length; 行上找到符号;并且箭头指向 textmaze[0].length 中的点。你知道怎么回事吗?
  • textmaze 是一维数组,要么参数错误,要么你正在尝试做一些无法实现的事情......
猜你喜欢
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
相关资源
最近更新 更多