今天遇到一個(gè)很糾結(jié)的問題,有人問:有什么方法可以直接通過static關(guān)鍵字的使用來實(shí)現(xiàn)對(duì)某個(gè)對(duì)象只能new 3次,第四次new的時(shí)候得到的對(duì)象就是null?各位大神:請(qǐng)問你們有辦法嗎?我的思路使用的單例模式結(jié)合stati關(guān)鍵字來想的,但是問題是這樣的話在實(shí)例化的時(shí)候就不是使用new關(guān)鍵字來實(shí)現(xiàn),而是使用了方法,public class Card { private String password; private String username; public static int count = 1; private static Card card = null; private Card(String username) { } // 寫一個(gè)創(chuàng)建Card對(duì)象的方法 public static Card getCard(String username) { if (count <= 3) { card = new Card(username); count++; return card; } else { System.out.println("第四次執(zhí)行了"); return null; } }坐等各位大神解答!謝謝
2 回答
已采納
Its_forever
TA貢獻(xiàn)361條經(jīng)驗(yàn) 獲得超328個(gè)贊
public?class?Card?{
String?name;
static?Card?card;???????????????//靜態(tài)對(duì)象card
public?static?Card?getCard()?{??//靜態(tài)方法getCard
card?=?new?Card();
return?card;
}
public?static?void?main(String[]?args)?{
int?count?=?1;
do?{
System.out.println("第"+count+"次調(diào)用");
getCard();???????//調(diào)用3次getCard,new?三次card對(duì)象。
System.out.println("第"+count+"次調(diào)用結(jié)束");
count++;
}while(count?<=?3);
System.out.println("第四次調(diào)用");
card?=?null;
System.out.println(card);
}
}不知道這樣算不算符合題意。
產(chǎn)品經(jīng)理不是經(jīng)理
TA貢獻(xiàn)481條經(jīng)驗(yàn) 獲得超143個(gè)贊
public?class?Card{
????public?static?int?sum=0;
????private?Card(){}
????public?static?Card?getCard(){
if(Card.sum>2)?{
????System.out.println("對(duì)象實(shí)例超過3!");
????return?null;
}else?{
????Card.sum++;
????return?new?Card();
}
}添加回答
舉報(bào)
0/150
提交
取消
