例如,我想模仿 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
我将如何使用我自己的对象执行此操作(假设我希望默认值为双精度)?
再次感谢。
最终编辑(希望如此):您的回答足以让我了解更多有关 Primitive Wrappers 和 Autounboxing 的信息。我的理解是没有办法做我想做的事(在这一点上,我将其描述为将我的对象自动拆箱为双重),或者至少我会将其保存到另一个问题。干杯。