簡體   English   中英

如何將靜態方法轉換為實例方法

[英]How to convert a static method into an instance method

如果我有以下方法:

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

如何將其創建為實例方法? 我知道這與消除靜電有關,但是我從那里去哪里呢?

刪除static關鍵字后,您需要更改該方法的調用方式。

例如,如果您的班級被稱為MyClass,並且您以前在做

MyClass.flipHorizontal(myPicture);

...然后您需要從封閉類的實例中調用您的方法。 例如

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

根據封閉的類(或其實例變量之一)是否為Picture ,可能會刪除flipHorizontal的輸入參數(因為不再能夠使用靜態方法就可以訪問這些對象) )

我認為您不需要為靜態方法獲取實例,可以將靜態方法與className.staticMethod一起使用。 utilsClass中有許多靜態方法,因此您只需要使用className即可使用該方法,因此使用實例要舒適得多。 如果您不想使用className,我想您只是想使該方法成為普通方法,只需刪除該方法中的static關鍵字即可。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM