![](/img/trans.png)
[英]Calling a method from another Java class when return value should change every time it is run in the new program
[英]when calling method from another class - retuns an incomprehensible value JAVA
当我上二等班时,为什么会看到“ Car @ 15ab7626”? 在课程中,我必须看到20,是吗? 我已经使用了differnetnet combinatoin和询问谷歌,但不要理解为什么。
我有1节课
public class Car {
public int drive(int a) {
int distance = 2*a;
return distance;
}
}
和二等
public class CarOwner {
public static void main(String[] args) {
Car a = new Car();
a.drive(10);
System.out.println(a);
}
}
您正在打印汽车对象,而不是驱动器打印的结果
不可理解的值JAVA是Object的文本表示形式。
当您执行System.out.println(a);
然后默认情况下, toString()
方法对传递的object.
调用object.
根据toString ()的文档
返回对象的字符串表示形式。 通常,toString方法返回一个“以文本形式表示”此对象的字符串。
所以
Car@15ab7626
是Values类的文本表示形式。
要打印由drive()
方法返回的结果,请打印,
System.out.println(a.drive(10));
如果要打印来自drive()
方法的结果,请将结果分配给变量,然后打印。
int result = a.drive(10);
System.out.println("Result = " + result);
或直接将结果传递给System.out.println()
方法;
System.out.println("Result = " + a.drive(10));
如果您想打印a
对象以可读的方式,覆盖toString()
的方法, Car
类定义。
@Override
public String toString() {
return "This is a car"; //for example
}
您正在从驱动器方法返回值,但没有在打印它。
要打印驱动方法的值,请使用
public class CarOwner {
public static void main(String[] args) {
Car a = new Car();
System.out.println(a.drive(10));
}
}
这不是方法返回值的工作方式。 如果您想将结果显示为20,请使用以下代码替换SOP
System.out.println(a.drive(10));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.