gpt4 book ai didi

java - 如果没有调用任何方法,我可以让对象返回默认值吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:35 27 4
gpt4 key购买 nike

例如,我想模仿 String 对象的功能:

String mystring = new String ( "Hi there." );
System.out.println(mystring); // prints "Hi there." without calling any methods on String
// (that is what I want with my object)
System.out.println(mystring.toUpperCase()); // prints "HI THERE."

从这里开始:

class MyObject
{
private Int value ;

public MyObject ( Int value )
{
this.value = value ;
}
public Int getValue ( )
{
return this.value ;
}
public Int multiplyBy ( Int multiplier )
{
return this.value * multiplier ;
}
}

...如何(或我可以)做这样的事情:

MyObject myobject = new MyObject ( 6 ) ;
System.out.println( myobject ) ; // want to print myobject.value (6)
System.out.println( myobject.multiplyBy ( 2 ) ) ; // print 12

我是 Java 的新手,意识到我可能遗漏了一些基本概念,但我们将不胜感激任何反馈。谢谢。

编辑:关于重写 toString 方法的回复很有帮助,但它并没有完全按照我的想法进行,这里有一个更好的例子来说明我想要的:

Double mydouble = new Double ( 20.1 ) ;
System.out.println ( mydouble + 10.1 ) ; // prints 30.2

如何使用我自己的对象执行此操作(假设我希望默认值为 double 值)?

再次感谢。

最终编辑(希望如此):您的回答足以让我了解更多有关 Primitive Wrappers 和 Autounboxing 的知识。我的理解是,没有办法做我想做的事(在这一点上,我将把我的对象描述为自动拆箱),或者至少我会把它留到另一个问题。干杯。

最佳答案

是的,你可以做到:你需要做的就是重写toString:

public String toString() {
return ""+this.value;
}

这是有效的,因为 println 调用正在打印的对象上的 toString

关于java - 如果没有调用任何方法,我可以让对象返回默认值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14429163/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com