• 打印对象和toString方法


    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方法是一个非常特殊的方法,它是一个“自我描述”方法,该方法通常用于实现这样一个
    功能:当程序员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用以告诉外界该对象
    具有的状态信息。

  • 相关阅读:
    [转]三维成像原理
    loader如果你提前设width或height,loadComplete后显示不出来
    Flash调用Alchemy编译的代码时出现Error #1506的解决
    通过 IP 区分不同国家的用户
    Linux的进程组和会话
    Linux下安装 JDK(转备忘)
    程序中,调用Bison和Flex结合的小例子(语法分析中处理数据)
    从自己的程序中使用lex的一个小例子
    yum 删除软件要注意一点
    Linux下top命令
  • 原文地址:https://www.cnblogs.com/rainey-forrest/p/4691577.html
Copyright © 2020-2023  润新知