Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向同一类中的另一个方法发送引用的通知_Java_Arrays - Fatal编程技术网

Java 向同一类中的另一个方法发送引用的通知

Java 向同一类中的另一个方法发送引用的通知,java,arrays,Java,Arrays,我正在为班级做一个计划,我被卡住了。当我试着编译下面的代码时,我收到了一个“变量未找到”错误。请帮忙 public class RingBuffer { public RingBuffer(int capacity){ double[] EmptyBuffer = new double[capacity]; System.out.print(EmptyBuffer.length); } public int size(){

我正在为班级做一个计划,我被卡住了。当我试着编译下面的代码时,我收到了一个“变量未找到”错误。请帮忙

public class RingBuffer 
{
    public RingBuffer(int capacity){
        double[] EmptyBuffer = new double[capacity];
        System.out.print(EmptyBuffer.length);

    }

    public int size(){
        int size = EmptyBuffer.length;
        return size;
    }

请注意,size()方法找不到变量EmptyBuffer时出错。

将数组作为参数传递给
size()
方法,就像您对
容量所做的那样:

int size(double[] EmptyBuffer){
    int size = EmptyBuffer.length;
    return size;
}
然后:


您可能应该将其设置为字段,也称为实例变量:

public class RingBuffer 
{
    private double[] emptyBuffer;

    public RingBuffer(int capacity){
        emptyBuffer = new double[capacity];
        System.out.print(EmptyBuffer.length);
    }

    public int size(){
        int size = emptyBuffer.length;
        return size;
    }
}

这将使
emptyBuffer
在整个类中可用,即在任何其他方法中。

emptyBuffer
是构造函数的局部变量。一旦构造函数完成,它就超出范围(不再存在)。
int-size-EmptyBuffer(double[]EmptyBuffer)
wtf?很好,输入错误。我的错误。清除了我的否决票,但我仍然认为你的解决方案使他使一个类变得相当过时:)当然,这仍然是一种可能性。通过在类声明中将
emptyBuffer
标记为
static
,我想这个问题可以得到更好的解决。@Mario De Schaepmeester代码可以很好地编译,变量为
静态
,如果您能解释一下问题的原因,我会很高兴。@SushimMukulDutta您不能在构造函数中分配
静态
(类)变量。看见也许你的意思是“最后的”
?啊!现在我明白了。非常感谢:)@MarioDeSchaepmeester
public class RingBuffer 
{
    private double[] emptyBuffer;

    public RingBuffer(int capacity){
        emptyBuffer = new double[capacity];
        System.out.print(EmptyBuffer.length);
    }

    public int size(){
        int size = emptyBuffer.length;
        return size;
    }
}