Java中什么时候需要显示重载toString方法
发布网友
发布时间:2022-04-23 01:36
我来回答
共5个回答
懂视网
时间:2022-04-23 05:58
下面我为大家详细讲解一下javascript模拟重载,toString方法的重写,详情请看下面代码。
/***重载模拟***/
function _person(){
var args=arguments;
if(typeof args[0]=="object"&&args[0]){
if(args[0].name){
this.name=args[0].name;
}
if(args[0].age){
this.age=args[0].age;
}
}else{
if(args[0]){
this.name=args[0];
}
if(args[1]){
this.age=args[1];
}
}
}
//toString方法的重写
_person.prototype.toString=function(){
return 'name='+this.name+",age="+this.age;
}
//////创建对象
var stu1=new _person("赵四","23");
stu1.toString();
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
详细讲解JS重写原型对象
js方法的重写和重载的技巧详解
重点分析JavaScript重写alert()方法的技巧
热心网友
时间:2022-04-23 03:06
api中对于Object类,默认打印一个对象(如果这个对象的类在api上的方法中没有toString()方法)的时候,直接打印出getClass().getName() + '@' + Integer.toHexString(hashCode())这样的格式,如果这个对象类的方法中带有toString()方法,比如像String这个类中就有toString()这个方法,那么就不需要重载,一般而言,自己定义的类因为没有像String类一样本身带有toString()方法,已经自己重载了,那么一般而言我们需要重载toString()方法,还有一个很简单的方法就是,让系统帮你判断什么时候需要重载,就是编译后,发现打印出的结果类似于getClass().getName() + '@' + Integer.toHexString(hashCode())也就是比如像一个类Test中
public class Test{
public static void main(String args[]){
Test A=new Test();
System.out.println(A);
}
}
打印出
Test@35ce36
注意,Test是自己定义的一个类,没带有toString()方法,那么系统默认为object类来重载也就打印出上面的结果;
对于一个自己定义的类
public class Test{
String name="小白";
String hobby="篮球";
public static void main(String args[]){
Test A=new Test();
System.out.println(A);
}
public String toString(){
return ("这个小孩字的名字是"+name+"\n"+"爱好是"+hobby);
}
}
打印出
这个小孩字的名字是小白
爱好是篮球
类Test中有name和hobby两个属性,我们想单单通过打印A对象就打印出自己想要的东西 比如说
("这个小孩字的名字是"+name+"\n"+"爱好是"+hobby);那么我们这个时候可以用重载toString()方法,这样可以令程序看起来更加的优雅?
当然这样也是可以的
public class Test{
String name="小白";
String hobby="篮球";
public static void main(String args[]){
Test A=new Test();
System.out.println("这个小孩字的名字是"+A.name+"\n"+"爱好是"+A.hobby);
}
}
这个时候不需要重载toString(),
重载的好处多多,需要慢慢去发现;
总之一个定义的类比如说Cat类,你在着这个类中定义了眼睛的颜色,皮毛的颜色,然后你就想了,我直接打印Cat的对象,可不可以将这个类的所有属性打印出来呢?这是不行的,只会打印出类名+@+hashCode,这个时候我们就需要通过重载toString来实现将类中的属性信息打印出来
3,有一个方法比较好用,就是当你运行的时候打印出类名+@+hashCode,这和你想得到的结果不一样,那么你这个时候就去重载好了,重载跟自己的需要有关,一切为了目的,这东西不用刻意去记,让系统去发现错误,让系统干多点活好了~
热心网友
时间:2022-04-23 04:24
你对控制台的输出内容不满意的时候,就重写toString显示你想看到的内容和格式
热心网友
时间:2022-04-23 05:58
从本质讲,只有一种情况需要重载toString:
“需要序列化(成字符串)的时候”
这一种情况表现出多种外在现象
比如
1、狭义方面,需要把对象打印显示字符串,打印过程就是对输出流的序列化。
2、需要传递给java库的各种字符接口的时候。
3、自定义的类,需要以显示成比较特殊形式的字符串。
4、等等等等
toString不是序列化的唯一方式,但用到toString就只是为了序列化成字符串
掌握序列化的技巧是关键。
=========
楼上有人说那么多,其实只是属于第1条一种表面情况。
热心网友
时间:2022-04-23 07:50
看需要喽,好好看看定义,你就会明白喽