Нужна помощь в получении высоты изображения (Возможная проблема наследования) - PullRequest
0 голосов
/ 13 апреля 2011

Хорошо, так что это класс KernelHandler

public class KernelHandler extends ImageHandler

У меня не получается найти метод getWidth ()

Я знаю, что это как-то связанонаследство, но мне нужна помощь, пожалуйста

//Heres the contructor

 public KernelHandler(String nameOfFile)
{
   super(nameOfFile);


    }

// here's the super constructor
public ImageHandler(String  nameOfFile){


     URL imageURL = getClass().getClassLoader().getResource(nameOfFile);
    try
    {
     myImage = ImageIO.read(imageURL);
    }
    catch ( IOException e )
    {
        System.out.println( "image missing" );
    }

// Here's the method were trying to use

public static int numOfRedBoxes(String nameOfImg)

    {
        KernelHandler myHand = new KernelHandler(nameOfImg);
        for(int i = 0; i < myHand.getWidth(); i++)

            for(int j = 0; j < myHand.getHeight(); j++){
                if(img.getRGB(i, j) == red){
                    numOfRedBoxes++;
               }   
            }
       }
      return numOfRedBoxes;
   }

Ответы [ 3 ]

0 голосов
/ 13 апреля 2011

Попробуйте изменить тип myHand на тип суперкласса, это будет что-то вроде:

ImageHandler myHand = new KernelHandler(nameOfImg);
0 голосов
/ 13 апреля 2011

Есть ли метод с именем getWidth () в ImageHandler? Я видел некоторые реализации этого класса, которые этого не делают. Это может быть еще одна причина, почему он не доступен.

0 голосов
/ 13 апреля 2011

getWidth() не должно иметь частного доступа в ImageHandler (или пакетного частного доступа, если оба класса находятся в разных пакетах). Не могли бы вы проверить это?

Проще говоря, getWidth() должен иметь префикс public или protected.

...