![](/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.