java.lang.Object的toString方法的实现:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
这通常不是用户期望看到的,它包含类名称,一个“@”符号,以及散列码的无符号十六进制表示法。
toString通用约定指出,被返回的字符串应该是一个“简洁的,但信息丰富,并且易于阅读的表达形式”,进一步的约定指出,建议所有的子类都覆盖这个方法。
提供好的toString实现可以使类用起来更加舒适,当对象被传递给println、printf、字符串联操作符(+)以及assert或者被调试器打印出来时,toString方法会被自动调用。
提供好的toString方法,产生有用的诊断信息会非常容易:System.out.println("Failed to connect: " + phoneNumber);
toString方法应该返回对象中包含的所有值得关注的信息,如果对象很大,包含的状态信息难以用字符串表示,应该返回一个摘要信息。
在实现toString的时候,必须作出是否指定返回值的格式的决定。指定格式的好处是可以被用作一种标准的、明确的、适合人阅读的对象表示法。不足之处在于类一旦指定格式,必须始终如一地坚持这种格式。程序员将编写代码来解析这种字符串,如果将来改变了格式,他们的代码就无法正常运行了。总的来说不指定格式保留了灵活性。
两个建议:
1.无论是否决定指定格式,都应该在文档中明确地表明意图,通过文档注释来说明。
2.无论是否指定格式,都为toString返回值中包含的所有信息,提供一种编程式的访问途径,如使用getter方法提供。否则程序员必须去解析字符串,而这会导致大量不必要的工作量和增加程序出错的可能性。
相关推荐
generate a toString() with a json format select single or multiple java class file, click toString via rightKey, ... 如果toString()方法已存在,则直接覆盖 by qq963577663 wangjinwen 2018-06-17
要求覆盖基类Object中的ToString()方法和Equals()方法,使得直接输出Student对象时输出的是对象的id,name和age信息;并且当两个对象的学号相同时认为它们相等; 然后写一个主方法测试以上定义。
labeled-tostring.zip,覆盖tostring以显示参数标签的scala特征覆盖tostring以显示参数标签的scala特征
设计一个类Shape(图形)包含求面积和周长的area()方法和perimeter()方法以及设置颜色的方法SetColor(),并利用...每个类都要覆盖toString方法。 海伦公式:三角形的面积等于s(s-a)(s-b)(s-c)的开方,其中s=(a+b+c)/2
ArcGIS-Engine拓扑规则转换为中文-C#代码 case "esriTRTLineNoOverlap": topoRuleType = TopoErroType.线要素间不能有相互重叠部分.ToString();...第一个图层线要素应被第二个线图层线要素覆盖.ToString();
洁净递归删除对象上的保留键,如 hasOwnProperty、toString 等安装 npm install... 但是,因为toString被覆盖为字符串,所以现在调用toString是错误的,因为它不再可调用。 运行此代码会导致: TypeError: Cannot conve
下面给出一个toString()方法覆盖的例子。 public enum Color { RED("红色" , 1 ), GREEN( "绿色" , 2 ), BLANK( "白色" , 3 ), YELLO( "黄色" , 4 ); // 成员变量 private String name; private int index...
segybinaryheader.AddInfo("27-28", (segyBinaryHeader.fold).ToString(), "CMP覆盖次数"); segybinaryheader.AddInfo("29-30", (segyBinaryHeader.tsort).ToString(), "道分选码"); segybinaryheader.AddInfo(...
程序员考试刷题演示 ...toString() 方法,该方法打印存储在这些类中的文本。 SpecialString 类不会覆盖 toString() 方法,因此当 SpecialString 的实例打印到控制台时,您会得到:@。 问题二:不正确 编译执行T
覆盖toString()方法,然后编写它; @Overridepublic String toString(){ return Stringify . toString( this );} 然后按照以下步骤创建Java bean; 书Book book = new Book ( " Kurk Mantolu Madonna " , 2015 );...
此功能检查类是否覆盖toString或使用Object的默认值。 ###示例用法 以下示例将失败,直到所有类(或其父类)都具有自定义toString为止: < groupId> org . kitteh < / groupId > < artifactId> kitteh - ...
覆盖每个类中的toString()方法,输出相应的类名、编号ID和姓名。 编写一个测试程序,随机创建8个Student、Faculty或Staff对象,放在一个数组或者Vector类对象中,依次调用他们的toString()方法显示信息。
面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将功能封装进对象,强调具备了功能的对象。 面向对象是基于面向过程的。
(Person、Student、...覆盖每个类中的toString方法显示相应的类名和人名。 画出类的UML图,并实现这些类。编写测试程序,创建Person、Student、Employee、Faculty和Staff类,并调用它们的toString()方法。
String str56=Integer.toString(str22.length());//将整形转换成字符串 Lb10.setText(str22); Lb2.setText(str56); Lb3.setText(str56); Lb4.setText(str56); Lb5.setText("无"); Lb12.setText(".0"); Lb1....
node -p " crypto.randomBytes(20).toString('hex') " 然后,创建一个配置文件,并将其放在$HOME/.overlayerrc.json : { " key " : " 7d382308f2a4b8c2a1165bc801bd49ebc3751b3c " } 当您运行该应用程序时,它...
hfut java第二次作业设计一个包含5个类的Java程序,名为Person的父类有两个子类,学生类Student和员工类Employee。Employee类有两个子类,教师类Faculty和 职员类...覆盖每个类中的toString()方法,输出相应的类名、
如果选中"覆盖原图"checkbox,则覆盖原图。 9。可以根据要求,在webform上设置1个以上的file input和相应的checkbox 10。并在文件上传完毕后,显示原图的文件名,尺寸,字节,和 11。缩略图的文件名尺寸。 12。...
打印课程对象信息,采用覆盖定义 toString()方法的方式。 实验步骤 在保持实验三项目中,Course 类,Student 类,Teacher 类,People 类中的代码不变的情况下,在 main 类中即主函数中对代码进行修改。 2.首先先创建一...
(Person、Student、Employee、Faculty和Staff类)设计名为Person的类和它的两个子类student和Employee。Employee有子类Faculty和Staff。人有姓名、地址、电话号码和...覆盖每个类中的toString方法显示相应的类名和人名。