3 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
static
適用于您不希望每個(gè)實(shí)例都有副本的情況
instance
變量適用于您希望為每個(gè)對(duì)象實(shí)例單獨(dú)復(fù)制的情況。
根據(jù)業(yè)務(wù)案例,使用哪一個(gè)可能會(huì)發(fā)生變化。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果你有太多靜態(tài)函數(shù)和變量,它可以導(dǎo)致更實(shí)用的方法,而不是真正的OO。此外,如果您有公共靜態(tài)變量,那么您復(fù)制的全局變量并不好。跟蹤他們是一場(chǎng)噩夢(mèng)。
一般來說,我的規(guī)則是使用實(shí)例變量,如果你可以而且只有靜態(tài)變量和函數(shù),如果它真的是一般而不是一個(gè)對(duì)象
這是類似問題Java的一個(gè)很好的答案 :什么時(shí)候使用靜態(tài)方法
而不是僅僅鏈接到方法考慮使用新操作來創(chuàng)建新對(duì)象并以非靜態(tài)方式從該方法訪問該方法。
之前
public void myMethod(){
Time.setTime(Time.getTime() + 20);
System.out.println(Time.getTime());
}
后
public void myMethod(){
Time t = new Time();
t.setTime(t.getTime() + 20);
System.out.println(t.getTime());
}
現(xiàn)在,在這些方法中保存的任何狀態(tài)都是您創(chuàng)建的時(shí)間的實(shí)例。如果需要,您還可以與其他方法共享變量t。
添加回答
舉報(bào)