作为示例,我想模仿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."
Run Code Online (Sandbox Code Playgroud)
从这开始:
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 ;
}
}
Run Code Online (Sandbox Code Playgroud)
......如何(或我可以)做这样的事情:
MyObject myobject = new MyObject ( 6 ) ;
System.out.println( myobject ) ; // want to print myobject.value (6)
System.out.println( myobject.multiplyBy ( 2 ) ) ; // print 12
Run Code Online (Sandbox Code Playgroud)
我对Java很新,并意识到我可能错过了一些基本概念,但任何反馈都会受到赞赏.谢谢.
编辑:关于覆盖toString方法的响应是有帮助的,但它并没有完全按照我的想法,这里是我想要的更好的例子:
Double mydouble = new Double ( 20.1 ) ;
System.out.println ( mydouble + 10.1 ) ; // prints 30.2
Run Code Online (Sandbox Code Playgroud)
我如何使用自己的对象(假设我希望默认值为double)?
再次感谢.
最终编辑(希望如此):您的答案足以让我了解有关原始包装和自动装箱的更多信息.我的理解是没有办法做我想做的事情(在这一点上,我将其描述为自动将我的对象称为双重),或者至少我会将其保存为另一个问题.干杯.
是的,你可以做到:你需要做的就是覆盖toString:
public String toString() {
return ""+this.value;
}
Run Code Online (Sandbox Code Playgroud)
这是因为println调用toString正在打印的对象.