我需要創建接口MultiLingual,它允許以不同的語言顯示對象的數據(不是數據本身,而是像「作者」,「標題」等介紹)。使用Java接口
打印的數據是這樣的:
3 grudnia 1998
10th of June 1924
Autor: Tolkien
Tytul: LoTR
Wydawnictwo: Amazon 2010
Author: Mitch Albom
Title: Tuesdays with Morrie
Publishing House: Time Warner Books 2003
37 360,45 PLN
5,850.70 GBP
3rd of December 1998
10th of June 1924
Author: Tolkien
Title: LoTR
Publishing House: Amazon 2010
Author: Mitch Albom
Title: Tuesdays with Morrie
Publishing House: Time Warner Books 2003
37,360.45 GBP
5,850.70 GBP
測試代碼如下所示:
public class Main {
public static void main(String[] args){
MultiLingual gatecrasher[]={ new Data(3,12,1998),
new Data(10,6,1924,MultiLingual.ENG),
new Book("LoTR", "Tolkien", "Amazon", 2010),
new Book("Tuesdays with Morrie",
"Mitch Albom", "Time Warner Books",2003,
MultiLingual.ENG),
new Money(1232895/33.0,MultiLingual.PL),
new Money(134566/23.0,MultiLingual.ENG),
};
for(int i=0;i < gatecrasher.length;i++)
System.out.println(gatecrasher[i]+"\n");
for(int i=0;i < gatecrasher.length;i++)
System.out.println(gatecrasher[i].get(MultiLingual.ENG)+"\n");
}
}
,所以我需要引進常數ENG,PL在多語言界面,以及GET方法(INT語言):
public interface MultiLingual {
int ENG = 0;
int PL= 1;
String get(int lang);
}
然後我有班書。問題始於構造函數。其中之一需要以MultiLingual.ENG作爲參數,但如何實現呢?這是正確的方式嗎? :
class Book implements MultiLingual {
private String title;
private String publisher;
private String author;
public Book(String t, String a, String p, int y, MultiLingual lang){
}
或者我應該把這個MultiLingual.ENG當作int變量來處理,它會自動改變接口中的常量嗎?
的書並不需要MultLingual作爲參數,但下面的實現第二個構造函數是有點不對:
public Book(String t, String a, String p, int y){
Book someBook = new Book(t, a, p, y, MultiLingual m);
}
我可以只發送INT米處的多語種米,但我將有語言,如果沒有控制設置爲PL或ENG。
終於搞定了()的方法Boook,但我認爲至少這應該做工精細:
public String get(int lang){
String data;
if (lang == ENG){
data = "Author: "+this.author+"\n"+
"Title: "+this.title+"\n"+
"Publisher: "+this.publisher+"\n";
}
else {
data = "Autor: "+this.author+"\n"+
"Tytul: "+this.title+"\n"+
"Wydawca: "+this.publisher+"\n";
}
return data;
}
@Override
public String toString(){
return "";
}
}
謝謝,現在我得到它 – 2010-03-28 22:35:12