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;
}
}