Java 需要帮助创建String-toString()方法吗
我正在制作一个程序,基本上显示复数,实数部分和虚数部分都有自己的数据成员,然后显示用它们进行的一些数学运算(加法、减法、乘法)。Java 需要帮助创建String-toString()方法吗,java,tostring,Java,Tostring,我正在制作一个程序,基本上显示复数,实数部分和虚数部分都有自己的数据成员,然后显示用它们进行的一些数学运算(加法、减法、乘法)。 我有两个类文件,public class Complex()和public classcomplextest()。在我的Complex() 下面是我的Complex()类中的一些主要内容,让您了解它在做什么 //**********Methods to perform calculations with object********** public Complex
我有两个类文件,
public class Complex()
和public classcomplextest()
。在我的Complex()
下面是我的Complex()
类中的一些主要内容,让您了解它在做什么
//**********Methods to perform calculations with object**********
public Complex add(Complex c){
return new Complex((c.realPart + this.realPart) , (c.imaginaryPart + this.imaginaryPart));
}
public Complex subtract(Complex c){
return new Complex((this.realPart - c.realPart) , (this.imaginaryPart - c.imaginaryPart));
}
public Complex multiply(Complex c){
return new Complex();
}
//Checks if an object is equal to the parameter
public boolean equals(Complex c){
return isEqual(c.getReal(), this.getReal()) && isEqual(c.getImaginary(), this.getImaginary());
}
//Allows checking of equality of doubles
public boolean isEqual(double x, double y){
//multiplier for 8 decimal places
final double dec = Math.pow(10, 8);
return (Math.round((x * dec)) == Math.round(y * dec));
}
然后是测试仪:
如果您想要一个toString
方法来输出形式为a+bi
的复数,您可以使用以下方法:
public String toString() {
return String.valueOf(realPart) + "+" +
String.valueOf(imagPart) + "i";
}
当然,您可以想象并找出是否缺少单个位:
public String toString() {
if (imaginaryPart == 0)
return String.valueOf(realPart);
if (realPart == 0)
return String.valueOf(imagPart) + "i";
return realPart + "+" + imagPart + "i";
}
例如,请参见以下测试程序:
public class Cplx {
private double realPart, imagPart;
public Cplx(double r, double i) {
realPart = r;
imagPart = i;
}
public String toString() {
if (imagPart == 0)
return String.valueOf(realPart);
if (realPart == 0)
return String.valueOf(imagPart) + "i";
return realPart + "+" + imagPart + "i";
}
public static void main(String[] args) {
Cplx n;
n = new Cplx(0,0); System.out.println(n);
n = new Cplx(1,0); System.out.println(n);
n = new Cplx(0,2); System.out.println(n);
n = new Cplx(1,2); System.out.println(n);
}
}
哪些产出:
0.0
1.0
2.0i
1.0+2.0i
toString()返回对象的字符串表示形式
例如,在复杂类中,有实部和虚部的变量,可能有一个toString()方法,如下所示:
@Override
public String toString() {
return "Complex [realPart=" + realPart + ", imaginaryPart="
+ imaginaryPart + "]";
}
如果您在Java开发中使用eclipse,实际上可以自动生成toString()和其他一些方法。通常,您不会在toString()方法中格式化输出。您应该为此创建一个单独的显示方法 对于打印,您可以使用
System.out.printf("%.3f + %.3fi",1.21312939123,3.44);
您可以根据需要更改小数位
在类似的行中,您可以使用real-partvariable++“++”+complexpart++“i”组成一个字符串。我对您的最后一句话感到好奇,而不是格式化输出。考虑到toString()
用于System.out.println(myComplexVar)
之类的东西,我认为这就是渲染它的准确速度,否则您的打印语句将变得不必要的复杂。非常感谢您。。。一般来说,当老师在课堂上解释事情时,我能理解,但她并没有真正解释得太好。或者说,这只是迄今为止我们所学的较难的概念之一。
System.out.printf("%.3f + %.3fi",1.21312939123,3.44);