如何将静态方法转换为实例方法

时间:2017-05-03 03:23:00

标签: java methods

如果我有以下方法:

public static void flipHorizontal(Picture v){
    int w = v.getWidth();
        int h = v.getHeight();
        int width = w;
        for(int y = 0; y < h; y++){
            for(int x = 0; x < w/2; x++){
                Pixel pixelobj = v.getPixel(x, y);
                Pixel bottomPixel = v.getPixel(width - 1 - x, y);
                bottomPixel.setColor(pixelobj.getColor());  
        }
    }       
}

如何将其创建为实例方法?我知道它与去除静电有关,但我从哪里去?

2 个答案:

答案 0 :(得分:4)

删除static关键字后,您需要更改方法的调用方式。

e.g。如果你的班级被称为MyClass,而你之前在做过

MyClass.flipHorizontal(myPicture);

...然后你需要从封闭类的实例中调用你的方法。 e.g。

MyClass blah = new MyClass();
blah.flipHorizontal(myPicture);

根据封闭类(或其实例变量之一)是否为Picture,删除flipHorizontal的输入参数可能是有意义的(因为它可以访问这些已经不再是静态方法的对象了)

答案 1 :(得分:0)

我认为您不需要获取静态方法的实例,您可以将静态方法与className.staticMethod一起使用。 utilsClass中有很多静态方法,所以你只需要className来使用该方法,使用实例会更加舒适。 如果你不想使用className,我想你只想把方法变成普通方法,只需删除方法中的static关键字即可。 谢谢