2011-04-03 54 views
0

好吧,我有問題。找不到變量(繼承問題)

我有兩個類:ImageHandler和PixelHandler。

在我ImageHandler I類聲明:

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

我嘗試reacess MYIMAGE在PixelHandler:

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

您是否想要擴展ImageHandler類?

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

此外,派生類無法訪問其父母的私有數據成員。如果您聲明變量作爲保護,那麼子類將能夠訪問它:

protected static BufferedImage myImage; 
+0

你也必須使myImage'保護'而不是私人。 – jbrookover 2011-04-03 02:45:50

+0

現在在我的子類,當我嘗試做一個新的構造 公共PixelHanlder(){} 它說找不到符號的 - 構造ImageHandler() – 2011-04-03 03:00:59

+0

我只需要一個空白構造 – 2011-04-03 03:05:28

0

private變量是私有的,這意味着你不能從其他類訪問它們的類(也沒有繼承)。如果PixelHandler是圖像處理程序的擴展,則應該聲明myImage爲protected,而不是private。否則,您應該使用ImageHandler.myImage或更好的方法訪問此變量,在ImageHandler中聲明一個靜態方法來獲取此變量。