精华内容
下载资源
问答
  • 主要介绍了JavaScript中Object.prototype.toString方法的原理的相关资料,需要的朋友可以参考下
  • Object类及toString方法介绍

    万次阅读 多人点赞 2016-05-09 16:24:38
    一、Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了...

    一、Object类介绍

    Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗。所有的类,不管是谁,都是从它继承下来的。


    二、toString方法介绍


    一个字符串和另外一种类型连接的时候,另外一种类型会自动转换成String类型,然后再和字符串连接。基础的数据类型int,float,double转换成字符串比较简单,按照它们的数字转换过来就成了,可以引用类型呢,Person p = new Person();一个字符串加上这个p,你就不知道要怎么把这个p转换成字符串了,因为这个p是一个引用类型。 p = new Person();


    public class TestToString {
     
        public static void main(String[] args) {
             Dog d = new Dog();
            /**
              * 如果没有重写toString方法,那么输出来的默认的字符串内容是“类名+哈希编码”,
             * 如:dog=cn.galc.test.Dog@150bd4d
              * 这里的d就是一个引用类型,打印的时候,这个引用类型d会自动调用toString()方法将自己转换成字符串然后再与字符串”d:=”相连,
             * 然后一起被打印出来。d为什么可以自动调用toString()方法呢,Dog类里面也没有声明这个toString()方法。
              * 这是因为toString()方法是Object类里面的方法,而所有的类都是从Object类继承下来的,
              * Dog类当然也不例外,所以Dog类继承了Object类里面的toString()方法,
              * 所以Dog类的对象当然可以直接调用toString()方法了。
              * 但是Dog类对继承下来的toString()方法很不满意,
              * 因为使用这个继续下来toString()方法将引用对象转换成字符串输出时输出的是一连串令人看不懂的哈希编码。
              * 为了使打印出来的信息使得正常人都能看得懂,因此要在Dog类里面把这个继承下来的toString()方法重写,
              * 使得调用这个toString()方法将引用对象转换成字符串时打印出来的是一些正常的,能看得懂的信息。
              * 在子类重写从父类继承下来的方法时,从父类把要重写的方法的声明直接copy到子类里面来,
              * 这样在子类里面重写的时候就不会出错了。
              */
             System.out.println("dog="+d);//打印结果:dog=I’m a cool Dog
         }
     }
     
     class Dog{
         /**
          * 在这里重写了Object类里面的toString()方法后,
          * 引用对象自动调用时调用的就是重写后的toString()方法了,
          * 此时打印出来的显示信息就是我们重写toString()方法时要返回的字符串信息了,
          * 不再是那些看不懂的哈希编码了。
          */
         public String toString() {
             return "I’m a Dog";
         }
     }



    任何一个类都是从Object类继承下来的,因此在任何一个类里面都可以重写这个toString()方法。toString()方法的作用是当一个引用对象和字符串作连接的时候,或者是直接打印这个引用对象的时侯,这个引用对象都会自动调用toString()方法,通过这个方法返回一个表示引用对象自己正常信息的字符串,而这个字符串的内容由我们自己去定义,默认的字符串内容是“类名+哈希编码”。因此我们可以通过在类里面重写toString()方法,把默认的字符串内容改成我们自己想要表达的正常信息的字符串内容。



    展开全文
  • 主要介绍了Java Object toString方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • js中toStringobject.toString区别解释

    千次阅读 2017-04-26 12:07:46
    1.toStringobject.toString运行结果演示   [javascript] view plain copy   var str = 'this is string';  alert(str.toString());  运行结果: ...

    1.toString 和 object.toString运行结果演示

     

    [javascript]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. var str = 'this is string';  
    2. alert(str.toString());  

    运行结果:



    [javascript]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. var str = 'this is string';  
    2. alert(toString(str));  
    运行结果:


    所以从上述运行结果得知object.toString()只是输出该对象的信息,并以字符表示,和许多其他的语言诸如Java的object.toString()一样,但是js提供的内置函数toString()输出的结果为"[object Window]",这和str对象没人任何联系,接下来我只对toString()方法详解。


    2.toString()详解

    ECMA 5.1 中关于该方法的描述是这样的:

    When the toString method is called, the following steps are taken:
    If the this value is undefined, return “[object Undefined]“.
    If the this value is null, return “[object Null]“.
    Let O be the result of calling ToObject passing the this value as the argument.
    Let class be the value of the [[Class]] internal property of O.
    Return the String value that is the result of concatenating the three Strings “[object ", class, and "]“.翻译如下:

    当调用toString方法时,下列步骤会被执行:

        如果this未定义时,返回“[object Undefined]”

             如果this为null时,返回“[object Null]”

        定义O,并且让O=ToObject(this)

        定义class,并且使class为O内置属性[[class]]的值

        返回三个字符串的拼接字符:"[object",class,"]"


    通过官方解释,可以清晰的得出toString()是在以特殊的字符串形式输出this的类型,不管你传入什么参数,该方法都是执行了window.toString()方法,this一直指向了window对象,所以输出了上述结果。


    3.怎么使用toString()方法判断任意类型

    通过上面对toString的讲解可知,toString()始终判断的是this的类型,那么只要将this指向其他对象,就能判断该对象的类型。

    到了这步就比较清楚了,js中改变this有那种方式,一种是call方法,另一种是apply方法,我们可以通过实验看看有没有达到我们想要的结果。

    [javascript]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. var str = 'this is string';  
    2. alert(toString.call(str));  
    运行结果


    [javascript]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. var str = 'this is string';  
    2. alert(toString.apply(str));  
    运行结果:


    这的确是我们想要的结果,大家可以试试其他的类型


    4.注意的地方

    在IE中使用toString.call()方法时会报错,建议使用Object.prototype.toString.call()(所有浏览器都支持),这是js为原始对象原型提供的toString方法,用法和toString方法一样。

    展开全文
  • 主要介绍了ObjecttoString()和equals()方法使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 记录一些学习中遇到的问题,如果理解的有什么错误希望大佬们能帮我指正。 一、为什么有这个问题? 在学习他人写的js教程时,了解到获取一个值的数据类型时,使用type ...console.log(Object.prototype.toString.call(te
  • 浅谈Object类的toString方法

    千次阅读 2018-03-10 23:25:40
    都是直接调用的toString方法,而这个方法即使不重写,也是可以调用的,因为它是Object类的方法,我们都知道,在java中,所有的类的超类都是Object.Object这个类里面的方法显的尤其重要,toString这个方法呢,就是...

            我们都知道,当我们需要打印一个对象时,都是直接调用的toString方法,而这个方法即使不重写,也是可以调用的,因为它是Object类的方法,我们都知道,在java中,所有的类的超类都是Object.Object这个类里面的方法显的尤其重要,toString这个方法呢,就是为了让我们能得到一个对象的文本表现形式,从而窥测这个对象里面的属性。

           通常我们在不重写时,可能会得到这样的一串结果

        

    com.deepCopy.Person@5f5660ef

    那这个东西到底是什么呢,尤其是后面这一串是什么鬼

    看一下源码就知道了

    public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }

    其实很简单,这个结果就是上面拼接出来的,hashCode是一个对象在堆里面对应的一个地址,尽量不要重写,除非在特定场合下,每一个对象的hashCode不要重复。

           练拳不练功,到头一场空。我搞了这么长时间的java,连Object的toString方法是怎么回事儿,直到今天才明白,说起来实在是惭愧啊.

    展开全文
  • Object类 中toString()方法详解 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。 如果一个类没有特别指定父类,...

    Object类 中toString()方法详解

    1.1 概述

    java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。

    如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:

    public class MyClass /*extends Object*/ {
      	// ...
    }
    

    根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。

    • public String toString():返回该对象的字符串表示。

    1.2 toString方法

    方法摘要

    • public String toString():返回该对象的字符串表示。

    toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

    由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

    覆盖重写

    如果不希望使用toString方法的默认行为,则可以对它进行覆盖重写。例如自定义的Person类:

    public class Person {  
        private String name;
        private int age;
    
        @Override
        public String toString() {
            return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';
        }
    
        // 省略构造器与Getter Setter
    }
    

    tostring()方法

    思考:为什么定义string类型的字符串,
    通过输出语句就能把字符串打印出?
    因为String类当中已经对tostring方法进行的重写

    public class TestString {
        public static void main(String[] args) {
            String str = "abc";
            System.out.println(str);//打印abc
            //	像string,Date,File 包装类等都重写了Object类中的tostring()方法 
            //	  使得调用对象的tostring()时,返回"实体内容"信息
            System.out.println(str.toString()); //同样打印abc
        }
    }
    
    	//tostring()的使用:
    	1.当我们输出一个对象的引用是,实际上就是调用当前对象的tostring()
    		Customer cus=new Customer();
    		System.out.println(cus.tostring());
    		System.out.println(cus);//输出的内容一样
    	2.像string,Date,File 包装类等都重写了Object类中的tostring()方法 
    	  使得调用对象的tostring()时,返回"实体内容"信息
    	3.自定义类也可以重写tostring()方法,当调用此方法时,返回对象的”实体内容“  
    	  重写tostring()方法:
    	  public String toString(){
    		  return ..........
    	  }
    

    案例分析

    //student类会继承object类,当然也会继承object类中的toString()方法
    public class Student /*extends object */ {
        private String name;
        private int age;
    
        public Student() {
        }
           public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
     // 省略构造器与Getter Setter
    }
    //********************************************************************
    
    //1.不重写toString()方法
    //没有重写toString()方法,会默认继承object类中的toString方法
     public class TestString {
        public static void main(String[] args) {
            Student s = new Student("张三",18);
            System.out.println(s);//打印的不是 张三,18  而是cn.itcast.day08.Student@1540e19d
        }
    }   
    
    //2.重写Student类中的toString()方法
    public class Student /*extends object */ {
        private String name;
        private int age;
    
        public Student() {
        }
    
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
     // 省略构造器与Getter Setter
    }
    
    public class TestString {
        public static void main(String[] args) {
            Student s = new Student("张三",18);
            System.out.println(s);//重写后打印:Student{name='张三', age=18}
            System.out.println(s.toString());//Student{name='张三', age=18}
        }
    }
    
    展开全文
  • Object类的toString方法

    千次阅读 2019-05-05 15:26:36
    Object类的toString()方法 源码 public String toString() 返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写...
  • Java中ObjecttoString()方法

    千次阅读 2019-04-07 17:30:18
    API中是这么解释的 toString public String toString()返回该对象的字符...Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表...
  • 深入理解Object.prototype.toString方法

    千次阅读 2020-08-10 16:28:08
    深入理解Object.prototype.toString方法ECMAScript 3ECMAScript 5ECMAScript 6ECMAScript 7 ECMAScript 3 在toString方法被调用时,会执行下面的操作步骤: 获取this对象的[[Class]]属性的值.(第一步) 计算出三...
  • javascript中的toString方法

    千次阅读 2017-01-16 14:59:49
    方法属于Object对象,由于所有的对象都是Object对象的实例,所以几乎所有的实例对象都可以使用toString方法toString()函数的返回值为String类型。返回当前对象的字符串形式,但是每个类型的返回值不一样,这是...
  • console.log(Object.prototype.toString.call(obj) === "[object Object]"); 使用以上方式可以很好的区分各种类型: (无法区分自定义对象类型,自定义类型可以采用instanceof区分) console.log(Object.prototype....
  • Object类在Java里面是一个比较特殊的类,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类...接下来通过本文给大家介绍Object toString方法,需要的的朋友参考下吧
  • 因为toString方法属于Object类中的一个方法。结果是返回对象的字符串表示形式。 对应下列代码: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 这行代码...
  • Object类 在Java中所有的类都有一个公共的父类Object,一个类只要没有明显的继承一个...Object类中的主要方法 public Object(),构造方法 public boolean equals(Object obj),普通方法,用于对象比较 public ...
  • Java Object类中toString方法的重写

    千次阅读 2021-01-02 16:17:00
    Object类中的tostring方法的: 当我们输出一个对象时,实际是输出的是这个类中的tostring方法,是一个地址值,而不是类中的属性。 一:子类没有重写Object类中的toStrinng方法时的输出 public class ToStringUse { ...
  • Object 中的toString方法

    2018-08-14 13:02:05
    一,toString 方法的...二,Object中的toString()方法 源码:  public String toString() {  return getClass().getName() + "@" + Integer.toHexString(hashCode());  } 分析:object中的toStrin...
  • 学习Java少不了对Object的认知,所有类都会继承它的属性,真正的超类。这一个系列,我会对... toString方法 clone方法 自定义类时考虑实现Comparable接口 本系列内容源于对《Effective Java》中文第二版第8条...
  • 这是Object方法,而所有类都是继承Object,所以“所有对象都有这个方法” 先看以下代码: package com.heima.object; import com.heima.bean.Student; public class Demo3_ToString { public static void ...
  • java toString()方法的使用和详解

    万次阅读 多人点赞 2018-10-19 00:23:39
    java toString方法是使用和详解1.toString()方法2. 通过java.lang.Object类的toString()定义来看实际使用中会出现什么情况? 1.toString()方法 toString()方法在Object类里定义的,其返回值类型为String类型,...
  • object中的toString方法

    2017-06-23 11:05:41
    任何一个类都是从Object类继承下来的,因此在任何一个类里面都可以重写这个toString()方法toString()方法的作用是当一个引用对象和字符串作连接的时候,或者是直接打印这个引用对象的时侯,这个引用对象都会自动...
  • toString方法:是Object类的方法之一(来自哪?)  概念:public String toString() :返回该对象的字符串表示。  为什么要重写?   toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+...
  • JavaScript:Object.prototype.toString方法的原理 文章目录JavaScript:Object.prototype.toString方法的原理ECMAScript 3 在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype...
  • Java-Object类-toString()方法

    千次阅读 2018-09-08 15:56:21
    Object类里的toString()这样说—— 举例: package com.cn; public class Test {  public static void main(String args[]) {  A a = new A();  System.out.println("a:" + a);//相当于调用a....
  • 如下图: 看System.out.println源码,如果输出是对象的话, 所以默认ObjecttoString方法 如果不是对象呢?
  • JS重写ObjecttoString()方法

    千次阅读 2018-05-09 15:00:49
    1. 起因:JSON.stringify方法转换成的字符串为JSON格式,属性名带有双引号,input输入框提交时报错。原因待确认。2. <!DOCTYPE html> <html> <head> <meta ...
  • 重写Object类的toString方法

    千次阅读 2018-11-27 22:02:37
    1. 我们在写Java程序的时候有时候需要对某个对象进行操作了之后加入需要查看对象里面的属性的话需要重写Object类的toString方法,但是一般涉及到的是好几个属性,有的属性是没有进行初始化的,那么假如这个使用开发...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 880,886
精华内容 352,354
关键字:

tostring是object方法吗