gpt4 book ai didi

java - 使用Java接口(interface)

转载 作者:行者123 更新时间:2023-12-01 19:23:50 25 4
gpt4 key购买 nike

我需要创建多语言接口(interface),它允许以不同语言显示对象的数据(不是数据本身,而是像“作者”、“标题”等介绍)。

打印的数据如下所示:

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");

}
}

所以我需要在MultiLingual接口(interface)中引入常量ENG、PL,以及方法get(int language):

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 m 代替 MultiLingual m,但如果语言设置为 PL 或 ENG,我将无法控制。

最后是 Book 的 get() 方法,但我认为至少这应该可以正常工作:

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 "";
}

}

最佳答案

您可能最好使用枚举来表示不同的语言

public interface MultiLingual {

enum Language { ENG, PL }

String get(Language lang);

}

Book 类的构造函数可以采用 MultiLingual.Language 的实例

public Book(String t, String a, String p, int y, MultiLingual.Language lang) {      
}

关于java - 使用Java接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2534206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com