Java 如何使用自定义对象将int和double合并为字符串并在另一个类中返回值

Java 如何使用自定义对象将int和double合并为字符串并在另一个类中返回值,java,concatenation,custom-object,Java,Concatenation,Custom Object,所以我分了三节课: NumberTester:所有测试用例的位置 Number:将int和double连接到公共字符串myStr中,然后 MyNumber:在这里创建另一个名为getStr()的方法并返回myStr的值 下面是代码。我的问题是,我将int和double连接到myStr中,然后运行numbertest的main方法。我应该得到17的输出,然后是3.0,然后是17,3.0,然后是173.0。但是,我得到的是null而不是173.0。谁能帮我解决这个问题 输出: 17 3.0 17 ,

所以我分了三节课:

NumberTester
:所有测试用例的位置

Number
:将int和double连接到公共字符串myStr中,然后

MyNumber
:在这里创建另一个名为getStr()的方法并返回myStr的值

下面是代码。我的问题是,我将int和double连接到myStr中,然后运行
numbertest
的main方法。我应该得到17的输出,然后是3.0,然后是17,3.0,然后是173.0。但是,我得到的是null而不是173.0。谁能帮我解决这个问题

输出:

17
3.0
17 , 3.0
173.0

修正你的班号

 public String toString(){
       return myStr;
  }
使用上述方法代替

 public String toString(){
   return (myInt + " , " + myDouble);
}
这个

修正你的MyNumber类

public Number getStr(){
    
    
 return num;
    
}

returnnum,因为数字的myStr为null,所以根本不使用它。这就是为什么控制台中有null。它没有初始化。读取java原语类型和默认值。如果没有指定值,则对象为空。如果未指定值,则基元值具有默认值。这有助于解决你的数字类问题

 public String toString(){
       return myStr;
  }
使用上述方法代替

 public String toString(){
   return (myInt + " , " + myDouble);
}
这个

修正你的MyNumber类

public Number getStr(){
    
    
 return num;
    
}

returnnum,因为数字的myStr为null,所以根本不使用它。这就是为什么控制台中有null。它没有初始化。读取java原语类型和默认值。如果没有指定值,则对象为空。如果未指定值,则基元值具有默认值。这可能会有所帮助

您没有在MyNumber中为myStr分配任何内容,因此在创建MyNumber时,JVM将其分配为null。(初始化过程)


这将起作用。

您没有在MyNumber中为myStr分配任何内容,因此在创建MyNumber时,JVM将其分配为null。(初始化过程)


这将起作用。

如果我理解正确,您必须从17和3.0返回173.0,您可以加上它们,就像“+myInt+myDouble”这样将为您提供173.0,在数字类的toString方法中,您可以返回myStr变量,您不需要>>(myInt+”,“+myDouble);你必须在MyNumber类中返回num变量,而不是myStr。如果我理解正确,你必须从17和3.0返回173.0,你可以加上它们,像这样“+myInt+myDouble,这将给你173.0,在你的Number类的toString方法中,你可以返回myStr变量,你不需要>>(myInt+”,“+myDouble);并且您必须在MyNumber类中返回num变量,而不是myStr。
public class MyNumber {
 private int myInt;
 private double myDouble;
 public Number num;
 public Number myStr;

 public MyNumber(int i, double d) {
    myInt = i;
    myDouble = d;

    num = new Number(myInt, myDouble);
    myStr = new Number(myInt, myDouble);
 }

 public Number getBoth() {
    return num;
 }

 public String getStr() {
    return myStr.getMyStr();

 }
}


public class Number {
 public int myInt;
 public double myDouble;
 public String myStr;

 public Number(int k, double d) {
    myInt = k;
    myDouble = d;

    myStr = myInt + "" + myDouble;

 }

 public String toString() {
    return (myInt + " , " + myDouble);
 }

 public String getMyStr() {
    return myStr;
 }

}

public class NumberTester
{
 public static void main(String args[])
 {
    MyNumber me = new MyNumber(17, 3.0);
    System.out.println(me.num.myInt);
    System.out.println(me.num.myDouble);
    System.out.println(me.getBoth());
    System.out.println(me.getStr());
 }
}