返回类(java)中已声明的多个值

返回类(java)中已声明的多个值,java,Java,首先,我是个大初学者。这是一个我正在努力处理的家庭作业——我不需要最好、最简单的解决方案,而是最简单的解决方案。感谢大家抽出时间来阅读 所以,我有这些属性: public int identifikace; public String druh; public int vek; public Majitel majitel; 在如下所示的构造函数中使用: public Zvire(int identifikace, String druh, int vek, Majitel majitel){

首先,我是个大初学者。这是一个我正在努力处理的家庭作业——我不需要最好、最简单的解决方案,而是最简单的解决方案。感谢大家抽出时间来阅读

所以,我有这些属性:

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;
}
写了一些简单的小技巧(

),但现在我应该创建一个方法,该方法返回带有identifikace、druh、vek和majitel的文本,所有这些都作为字符串

返回多个属性显然不起作用。那我该怎么做呢?Arraylist似乎是一个可能的解决方案,但我不知道如何使用它


提前谢谢。

您的老师可能希望您以一串的形式返回它们

在java中,您可以简单地将整数与类似字符串的字符串连接起来

String s = "abc";
int i = 5;
s + i; // returns abc5
如果要将对象转换为字符串,则需要使用内置的toString方法

因此,要创建字符串,需要执行以下操作

String s = identifikace + " " + druh + " " + vek + " " + majitel.toString();
如果您想在4种不同的方法中将它们分别作为4个字符串返回,您可以简单地使用上述解决方案,但不需要串联

提示:将int转换为字符串的一种常见方法是将其与“”连接(空字符串)


注意:如果toString没有被重写,那么它将返回对象的哈希值,如果您想让它返回自定义的内容,请重写它。

在Java中,所有类都是从
对象
超类扩展而来的,超类提供了
toString()
方法。此方法的目的是提供允许对象返回自身字符串表示形式的功能


在您的情况下,您需要做的是
重写该方法,并使其返回由您提到的数据组成的单个字符串。在这种情况下,您不需要返回多个项目。

|
符号分隔值

public static String getAllProperties(){
return  identifikace +"|"+druh +"|"+vek+"|"+majitel;

}
样本访问方法:

public accessProperties()
{

String allValues=YOURCLASSNAME.getAllProperties();
    for (String retval: allValues.split("|")){
         System.out.println(retval);
      }
}
我想

创建一个返回带有identifikace、druh、vek和 majitel-全部作为字符串

意思是

public String toString() {
    return String.format("%s %s %s %s", identifikace, druh, vek, majitel); 
}

以文本形式返回属性的方法:

public String toString() {
   return "" + identifikace + druh + vek + majitel;
}
你说:

但现在我应该创建一个方法,返回带有identifikace、druh、vek和majitel的文本,所有这些都是字符串

这是对方法签名的提示:您希望编写一个返回
字符串的方法。事实上,这种需求非常普遍,以至于每个Java对象都以一个已经实现的名为:
publicstringtostring()
的形式免费获得这种需求

但是,此默认方法没有那么有用。因此,您可以通过以下方式覆盖该方法:

@Override
public String toString() {
    return "" + this.identifikace + " " + this.druh + ...
}
这是因为串联运算符
+
。有更好的方法连接各种对象,但其思想是以字符串的形式“序列化”对象的状态


您应该在类中正确使用封装。您将字段声明为
public
,但仍为其提供getter。这是完全没有必要的。让你的字段私有化。

我不是一个java人,但是-

public string getIdentifikace(){ this.identifikace.toString()+","+this.druh +","+ this.vek.toString()+"," +this.majitel; } 公共字符串getIdentificationKace(){ this.identikace.toString()+”,“+this.druh+”,“+this.vek.toString()+”,“+this.majitel; } 天哪,我的问题,所以

以字符串形式返回:

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

}
类测试{
字符串a;
b串
INTC
公共静态类元组{
A A;B;C;
元组(A,B,C){
这个a=a
这个.b=b
这个。c=c
}
A getA(){
返回a;
}
//等等。。。。。
}
元组getThat(){
元组元组=
新元组(a,b,c);
返回元组;
}
}

好吧,你有多种方法可以做到这一点。但一种简单的方法是按照
@nipinti
的建议重写
对象的
toString()
方法。下面是一个实现

@Override
public String toString(){
    return (this.identifikace+":"+this.druh+":"+this.vek+":"+this.majitel);
}
下面是另一个使用
ArrayList
的实现(您也希望通过这种方式学习)

是了解更多有关
列表
界面的链接
这是理解它的实现的链接,比如
ArrayList
LinkedList

你想让你的方法返回一个字符串,它是所有值的串联还是所有值的单独串联?你介意看一下这两种解决方案吗?至少我还学到了一些东西——如果不是的话,串接就足够了。字符串串接呢?:)
@Override
public String toString(){
    return (this.identifikace+":"+this.druh+":"+this.vek+":"+this.majitel);
}
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;
}
public static void main(String[] args){
    ............

    List list= new YourClass().getAll();   

    ............
}