首先,我是一个很大的初学者。这是我正在努力解决的功课 - 我不需要最好的和最好的解决方案,但最简单的一个。感谢您的时间,大家都在阅读。
所以,我有这些属性:
public int identifikace;
public String druh;
public int vek;
public Majitel majitel;
在构造函数中使用,如下所示:
public Zvire(int identifikace, String druh, int vek, Majitel majitel){
this.identifikace = identifikace;
this.druh = druh;
this.vek = vek;
this.majitel = majitel;
}
写了一些简单易用的一招(
public int getIdentifikace(){
return identifikace;
}
),但现在我应该创建一个方法,使用 identifyikace , druh , vek 和 majitel - 全部为字符串。
显然返回多个属性不起作用。那我该怎么办呢? Arraylist似乎是一种可能的解决方案,但我不知道如何使用它。
提前谢谢。
答案 0 :(得分:1)
OMG问题,所以......
以字符串形式返回:
class Test {
String a;
String b
int c
String getThat () {
return a+b+c
}
}
更好,使用StringBuilder:
class Test {
String a;
String b
int c
String getThat () {
StringBuilder builder = new StringBuilder();
builder.append(a);
builder.append(b);
builder.append(c);
return builder.toString();
}
}
想要作为元组返回?使用泛型:
class Test {
String a;
String b
int c
public static class Tuples <A, B, C> {
A a; B b; C c;
Tuples (A a, B b, C c) {
this.a = a
this.b = b
this.c = c
}
A getA () {
return a;
}
//And so on.....
}
Tuples<String, String, Integer> getThat () {
Tuples<String, String, Integer> tuples =
new Tuples (a, b, c);
return tuples;
}
}
答案 1 :(得分:0)
你的老师可能希望你用1 String返回它们。
在java中,您可以简单地将整数与像
这样的字符串连接起来String s = "abc";
int i = 5;
s + i; // returns abc5
如果要将对象转换为String,则需要使用内置的toString方法。
因此,要创建String,您需要执行
String s = identifikace + " " + druh + " " + vek + " " + majitel.toString();
如果你想用4种不同的方法将它们作为4个字符串单独返回,你可以简单地使用上面的解决方案,但不需要连接。
提示:将int转换为String的一种hacky方法是将它与&#34;&#34;连接起来。 (空字符串)
注意:如果toString没有被覆盖,那么它返回对象的哈希,如果你想让它返回自定义的东西,覆盖它。
答案 2 :(得分:0)
在Java中,所有类都从Object
超类扩展,这使得toString()
方法可用。此方法的目的是提供允许对象返回其自身的字符串表示的功能。
在您的情况下,您需要做的是override
此方法并使其返回由您提到的数据组成的单个字符串。在这种情况下,您不需要返回多个项目。
答案 3 :(得分:0)
使用|
符号分隔值。
public static String getAllProperties(){
return identifikace +"|"+druh +"|"+vek+"|"+majitel;
}
示例访问方法:
public accessProperties()
{
String allValues=YOURCLASSNAME.getAllProperties();
for (String retval: allValues.split("|")){
System.out.println(retval);
}
}
答案 4 :(得分:0)
我认为
创建一个返回带有identifyikace,druh,vek和 majitel - 全部为字符串
意味着类似
public String toString() {
return String.format("%s %s %s %s", identifikace, druh, vek, majitel);
}
答案 5 :(得分:0)
以文本形式返回属性的方法:
public String toString() {
return "" + identifikace + druh + vek + majitel;
}
答案 6 :(得分:0)
你说:
现在我应该创建一个返回带有identifyikace,druh,vek和majitel的文本的方法 - 所有这些都是String。
这是您的方法签名的提示:您想要编写一个返回String
的方法。实际上,这种要求非常普遍,以至于每个Java对象都以已经实现的method形式免费获取:public String toString()
。@Override
public String toString() {
return "" + this.identifikace + " " + this.druh + ...
}
。
然而,这种默认方法并不实用。所以,你用这种方式覆盖那个方法:
+
这是因为连接运算符public
。有更好的方法来连接各种对象,但想法是你以字符串的形式“序列化”对象的状态。
您应该在课堂上正确使用封装。您将字段声明为{{1}}并为其提供getter。这是非常不必要的。将您的字段设为私有。
答案 7 :(得分:0)
我不是一个java家伙,但是 -
public string getIdentifikace(){ this.identifikace.toString()+","+this.druh +","+ this.vek.toString()+"," +this.majitel; }
答案 8 :(得分:0)
嗯,你有多种方法可以做到这一点。但一种简单的方法是覆盖toString()
类的Object
方法作为@nipinti
建议。这是一个实现。
@Override
public String toString(){
return (this.identifikace+":"+this.druh+":"+this.vek+":"+this.majitel);
}
这是另一个使用ArrayList
的实现(因为你也希望这样学习)
public List<Object> getAll(){
List list=new ArrayList<Object>();
list.add(this.identifikace);
list.add(this.druh);
list.add(this.vek);
list.add(this.majitel);
return list;
}
在包含main方法的类中:
public static void main(String[] args){
............
List list= new YourClass().getAll();
............
}