JAVA对象

java对象是都是Object类的实例,都可直接调用该类中定义的方法,这些方法提供了处理java对象的通用方法。

> > 6.2.1打印对象和toString方法
    先看下面程序:
  程序清单:codes/06/6-2/PrintObjectjava

public class PrintObject{
public static void main(String args[]){
Person p = new Person("帅气de猪八戒");
System.out.println(p.toString()); //跟p.toString()效果一样
}
}
class Person {
private String name;
public Person(String name){
this.name = name;
}
public void info(){
System.out.println("此人名为:" + name);
}
}
 

输出:

String.Person@c17164

当读者运行上面程序时,可能看到不同的输出结果:@符号后的6位16进制数字可能发生改变
但这个输出结果是怎么来的呢?System.out.println方法只能在控制台输出字符串.当使用该方法输出
Person对象时,实际上输出的是Person对象的toString()方法的返回值,也就是说,下面代码结果完全一样:

System.out.println(p);
System.out.println(p.toString());
    toString方法是Object类里的一个实例方法,所有Java类都是Object类的子类,因此所有Java对
象都具有toString方法。
    不仅如此,所有Java对象都可以和字符串进行连接运算,当Java对象和字符串进行连接运算时,
系统自动调用Java对象toString方法的返回值和字符串进行连接运算,即下面两行代码的结果也完全
相同:
    String pStr = p + "";
    String pstr = p.toString() + "";
    toString方法是一个非常特殊的方法,它是一个“自我描述”方法,该方法通常用于实现这样一个
功能:当程序员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用以告诉外界该对象
具有的状态信息。

打印对象和toString方法的更多相关文章

  1. (64)Wangdao.com第十天_JavaScript 对象的 toString() 方法改变输出

    JavaScript 对象的 toString() 方法改变输出 在平常,我们 console.log(对象);    // 会打印 [Object Object] 但是我们想要更详细的输出,此时,我 ...

  2. [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

    js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...

  3. 你会如何给全局对象添加toString()方法

    首先,在讨论如何给所有方法window对象添加toString方法的时候,我们先来说说window的对象继承与对象实例,以及构造函数的this指针,还有变量的提升与方法的调用方式,最终一探window ...

  4. 为何重写toString方法后会使哈希码能够打印出来

    首先还是推荐lz看源代码 简单的讲之所以调用了toString()方法,不是什么编译器默认的,而是因为lz你调用的是out.print()方法仔细看源代码,在PringStream类中,print方法 ...

  5. 当使用System,out.println()打印一个对象是自动调用toString方法

    在Java中,所有的对象都是继承自Object,自然继承了toString方法,在当使用System,out.println()里面为一个对象的引用时,自动调用toString方法讲对象打印出来.如果 ...

  6. 为什么toString方法可以用来区分数组和对象?

    首先大家都应该知道在javascript中只有是对象都存在toString方法,将调用该方法的值转换为字符串返回,如下: var arr = [1, 2, 3]; console.log(arr.to ...

  7. Effective Java 第三版——12. 始终重写 toString 方法

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  8. 第十条:始终要覆盖toString()方法

    Object类提供的toString()方法如下: public String toString() {    return getClass().getName() + "@" ...

  9. Java SE学习笔记 --->高级类特性 ---> toString() 方法

    概述: toString() 方法在面向对象当中十分常见,使用频率很高,和equals() 方法一样,也是Object类中定义的方法. jdk中 源码: java.lang.Object类中ToStr ...

随机推荐

  1. delphi列表视图组件(TListView)使用方法|实例

    TListView 组件以多种形式显示列表的项目,如详细资料.小图标.大图标等形式表示列表中的项目.    列表视图与用TListBox 组件实现的列表框非常相似.不同的是,列表视图可以让用户选择不同 ...

  2. MySQL重置root用户密码的方法(转)

    本教程适用于采用Win2003.WinXP操作系统的迅美VPS和云主机产品. 当管理员忘记MySQL密码怎么办?屡次输入密码,仍然提示错误,网站无法正常运行,数据库也无法管理,管理员束手无策. 网站程 ...

  3. jquery mobile页面切换效果(Flip toggle switch)(注:jQuery移动使用的数据属性的列表。 )

    1.页面切换(data-transition)

  4. QQ登录api

    <?php namespace Api\Member; class QQConnect{ /** * 获取QQconnect Login 跳转到的地址值 * @return array 返回包含 ...

  5. po 和 mo 的互相转换

    反编译 mo 文件成 po 文件 msgunfmt test.mo -o test.po 编码 po 文件为 mo 文件 msgfmt -o test.mo test.po 记着备用.

  6. 【结构型】Facade模式

    外观模式主要意图是为子系统提供一个统一的接口,从而使用用户对子系统的直接依赖中,解耦合出来.Facade主要是通过为子系统统一封装个入口一样,原先用户对子系统的接口.类等都是直接访问,现在要通过Fac ...

  7. xPath技术

    在dom4j中如何使用xPath技术 1)导入xPath支持jar包 . jaxen-1.1-beta-6.jar 2)使用xpath方法 List<Node> selectNodes(& ...

  8. 复杂事件处理引擎—Esper工作原理

    前面对Esper进行了概述,包括事件类型.事件流.事件窗口以及EPL相关内容.当然,上面的知识,对于简单的Esper开发,应该已经足够,能够根据自己业务需求,做出一个满足需要的Esper应用.但是,真 ...

  9. [翻译]只为图片使用IMG标签(Use IMG tags only for Images)

    原文地址:Use IMG tags only for Images 首先,补充一些背景知识. web开发人员经常通过在主页预加载(预缓存)将来的页面所用到的一些资源的方式来优化网站的性能.常用的手段是 ...

  10. AE-分享<学习后,制作的视频实例>小视频-与大家交流!