日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

什么时候使用静态方法

發(fā)布時(shí)間:2023/11/29 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么时候使用静态方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問(wèn)題:什么時(shí)候使用靜態(tài)方法

I am wondering when to use static methods? Say if I have a class with a few getters and setters, a method or two, and I want those methods only to be invokable on an instance object of the class. Does this mean I should use a static method?

我想知道什么時(shí)候使用靜態(tài)方法?就是說(shuō)我有一個(gè) 帶有一些getter和setter方法的類,我想這些只在一個(gè)類的實(shí)例對(duì)象中使用。那是不是意味著我應(yīng)該用一個(gè)靜態(tài)方法

例如:

Obj x = new Obj(); x.someMethod(); ...or:Obj.someMethod(); // Is this the static way?

我現(xiàn)在非常疑惑

回答一

一條經(jīng)驗(yàn)法則,問(wèn)你自己“調(diào)用這個(gè)方法是否有意義的,即使還沒(méi)有對(duì)象被構(gòu)造出來(lái)” 如果是的話,他應(yīng)該被定義為靜態(tài)的。

就像在你一個(gè)汽車類里面,可能有一個(gè)方法

double convertMpgToKpl(double mpg)

…which would be static, because one might want to know what 35mpg converts to, even if nobody has ever built a Car. But this method (which sets the efficiency of one particular Car):

這個(gè)方法可以是靜態(tài)的,因?yàn)榧词箾](méi)有建造過(guò)一輛汽車,我們也想知道35mpg 可以轉(zhuǎn)換成多少。

但是下面這個(gè)方法(用來(lái)設(shè)置一輛特定汽車的功率)

void setMileage(double mpg)

這個(gè)就不能成為靜態(tài)的了,因?yàn)樵谲囕v沒(méi)有被構(gòu)造之前,不可能調(diào)用這個(gè)方法,

順便說(shuō)一下,這個(gè)轉(zhuǎn)換不一定是對(duì)的,你有時(shí)可能有一個(gè)方法去調(diào)用兩臺(tái)汽車對(duì)象,這時(shí)候就還是靜態(tài)的了,例如:

Car theMoreEfficientOf(Car c1, Car c2)

雖然它可以被轉(zhuǎn)換成非靜態(tài)的版本,一些人可能就會(huì)爭(zhēng)論因?yàn)椴淮嬖谝粋€(gè)特權(quán)選擇哪臺(tái)車比較重要,你不能強(qiáng)制選擇一臺(tái)車去調(diào)用這個(gè)方法。但是這種情況只是占所有靜態(tài)方法中一個(gè)很小的部分

文章翻譯自Stack Overflow:https://stackoverflow.com/questions/2671496/when-to-use-static-methods

總結(jié)

以上是生活随笔為你收集整理的什么时候使用静态方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。