我想編寫一個類,以便每次創建新對象時,該對象都有一個新生成的代碼,但技巧是我不想將該值作爲對構造函數的一個參數。大約我具備以下條件:自動生成類中的變量值
public class Article{
private int cod;
private String name;
public Article(String name){
this.name=name:
}
}
然後我有一個名爲發票類中,我可以把這個文章類:
public class Invoice{
ArrayList<Article> detailList;
public add(Article a){
detailsList.add(a);
}
public ArrayList<Article> getArticleList(){
return detailList;
}
}
所以我想,每次我在你的主要類的一些文章並添加那些在Invoie類已經自動生成的代碼:
main class
ArrayList<Article> temp;
Article a1=new Article(....)
Article a2=new Article(....)
Article a3=new Article(....)
Invoice inv;
inv.add(a1)
inv.add(a2)
inv.add(a3)
//for example I want the first element to get a code of 10, the next as 20 and so on
temp=inv.getArticleList();
for (int i=0;i<temp.size();i++){
System.out.println(temp.get(i).getCod());
}
我已經嘗試使用:
private static int cod
在文章類
然後每次我加入+10時加入+10,但是當我從主類的列表中打印結果時,它只打印我最後生成的代碼;我該如何解決這個問題?
感謝
你應該閱讀什麼是靜態變量。你幾乎可以像現在這樣使用它,但應該將靜態變量從同步塊中分配給實例變量,或者使用AtomicInteger。 –
該代碼不計算,不清楚你想在哪裏添加代碼或將其減去。 – 2013-11-04 20:37:41