问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

看需要喽,好好看看定义,你就会明白喽
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
爱普生ME100不能打印 想去锦州西餐厅吃饭,环境好能拍照的,我主要是想拍照。。。食物很精致... Ipad Air连接电脑后itunes不显示设备 SuperJunior-it's you歌词 super junior lt's you的歌词翻译成中文? ...没钱,出来26了,究竟该不该去当兵?退役以后找工作 高中毕业生去入伍了没有考大学,请问退伍还可以继续升学历吗?有什么途径... 什么是免漆家具? 家里用免漆板打家具需多长时间好住进去 脐带血干细胞移植介绍 百度云怎么不同的备份在不同的文件夹 华为手机,用以前的电话号码设置的华为账号,现在号码不用了,密码也忘记了。怎么找回密码 ohh 是什么意思 请问:如何把复制粘贴 如何把微信上好友快速转移到另一个上 怎样长按复制添加?- 问一问 如何将微信好友复制到另一个上? 长按就可以复制了? 自己的怎么复制给别人 如何复制给别人 一键复制添加导医 申请执行人认为*执行行为违法,异议申请书格式怎么写? 被异议人该写谁? 被异议人是写*还是写执 怎样找到已复制的? 怎么复制给别人 微信上的怎么导出来 微信群如何复制全部 文件恢复软件免费的真正有吗文件恢复 怎么克隆一个可以收到相同信息的- 问一问 如何批量导出微信好友? 请问一下今年广西招兵的时间是什么时候,还有需要哪些条件才可以当兵。 粉条素鸡烩菜的家常做法 opera账户是免费的吗?opera的邮件客户端免费吗?它的邮件客户端好用吗? qq邮箱这些设置要开启吗?开启的话会不会收费之类的? 用java编写一个程序,实现删除指定文件夹目录下的所有文件,用到File 里 为什么Gmail邮件用Foxmail不能收取? QQ消息提示音:来,亲爱的,啵一个。哪里下载 密封条如何清洗吹干 本地的旅游区做什么生意好啊? 旅游度假区适合开什么店,酒吧可以不? 旅游小镇最合适做什么生意? 有旅游景点乡镇适合做什么生意 关于方法重载问题 手机藏在行李箱里 用各种衣服裹起来 然后那种普通的金属扫描仪会扫出来吗? 学校宿舍说要搜手机,一般是用什么仪器搜的? 有什么好电视看的 lucaspapawointment是什么意思 恢复出厂设置时候的那个访问限制密码忘记了怎么办 如何辨别真假“Lucas Papaw Ointment 神奇番木瓜万用膏 200g ” 苹果4s访问限制的密码忘记了,可以恢复出厂设置进入访问限制么 苹果4s访问限制的密码忘记了,可以恢复出厂设置进入访问限制么?