找不到变量(继承问题)

时间:2011-04-03 02:40:51

标签: java image inheritance variables bufferedimage

好的,我遇到了问题。

我有两个类:ImageHandler和PixelHandler。

在我的ImageHandler类中,我声明了:

public class ImageHandler{
     private static BufferedImage myImage;
     ...

我尝试在PixelHandler中恢复myImage:

public class PixelHandler{
     private int [] pix;

     public int checkNumOfWindows(){
         for(int x= 0; x < 1280; x++){
              for(int y =0; y < 800; y++){
                  pix = myImage.getRGB(x, y, 6, 7, experimentalPattern, 0, 6);
              }
         }
     }
     ...

当我尝试收到错误消息时:

  

找不到符号 - 变量myImage

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您的意思是扩展ImageHandler类吗?

public class PixelHandler extends ImageHandler {
   /* ... */
}

此外,派生类无法访问其父项的私有数据成员。如果您将变量声明为protected,则子类将能够访问它:

protected static BufferedImage myImage;

答案 1 :(得分:0)

private变量对类是私有的(也不是继承的),这意味着您无法从另一个类访问它们。如果PixelHandler是Image处理程序的扩展,那么你应该将myImage声明为protected,而不是private。否则,您应该使用ImageHandler.myImage来访问此变量,或者更好的是,在ImageHandler中声明一个静态方法来获取此变量。

相关问题