-
这样覆写Object类的toString方法对吗
2013-04-10 18:02:13这些覆写Object类的toString方法对吗? Object.prototype.toString=function() { alert("s"); } var o=new Object(); //s o.toString(); 下边是论坛里回复我的 回复于:...这些覆写Object类的toString方法对吗?
<html>
<head>
</head>
<body>
</body>
<script type="text/javascript">
Object.prototype.toString=function()
{
alert("s");
}
var o=new Object();
//s
o.toString();
</script></html>
下边是论坛里回复我的
回复于: 2013-04-07 15:58:15-
- zhujiaxing666666
-
等级:
#3 得分:0回复于: 2013-04-10 09:16:35-
- waiting593
-
等级:
#4 得分:0回复于: 2013-04-10 09:47:42-
- KK3K2005
-
等级:
#5 得分:0回复于: 2013-04-10 10:01:31-
- ftiger
-
等级:
#6 得分:0回复于: 2013-04-10 10:24:51回复于: 2013-04-11 09:32:16
-
-
Java基础十-Object类的toString方法和方法覆盖总结
2020-10-26 10:53:11Object类的toString方法 你现在能看懂以下代码了吗? System.out.println(“Hello world!”); System.out中,out后面没有小括号,说明out是变量名. 另外System是一个类名,直接使用类名System.out,说明out是一个静态变量...Object类的toString方法
1. 你现在能看懂以下代码了吗?
System.out.println("Hello world!");
System.out中,out后面没有小括号,说明out是变量名.另外System是一个类名,直接使用类名System.out,说明out是一个静态变量
System.out返回一个对象,然后采用"对象."的方式访问println()方法
我们研究了一下Object类当中的很多方法,大部分看不懂,其中有一个叫做"引用.toString",然后直接输出toString()方法的执行结果
方法覆盖
2.1 什么时候考虑使用方法覆盖?
父类中的方法无法满足子类的业务需求,子类有必要继承过来的方法进行覆盖
2.2 什么条件满足的时候构成方法覆盖?
有继承关系的两个类
第二:具有相同的方法名,返回类型,形参列表
第三:访问权限不能更低
第四:抛出异常不能更多
2.3 关于Object类中的toString()方法的覆盖?
toString()方法存在的作用就是:将java对象转换成字符串形式.
大多数的java类toString()方法都是需要覆盖的,因为Object类中提供的toString()方法输出的是一个java对象的内存地址.
至于toString方法具体怎么进行覆盖?
格式怎么定义,或者听需求的(听项目要求的)
2.4 方法重载和方法覆盖有什么区别?1. 方法重载发生在同一个类当中 2. 方法覆盖发生在具有继承关系的父子类之 3. 方法重载是一个类中,方法名相同,参数列表不同. 4. 方法覆盖是具有继承关系的父子类,并且重写之后的方法必须和之前的方法一致. 方法名一致,参数列表一致,返回值类型一致
-
java基础:Object 的toString方法
2015-02-01 15:30:45一:首先看Demo1 public class Dog1{ Dog1(){ } public static void main(String[] args) { Dog1 d = new Dog1();...我们经常会看到对象的输出结果是这个样子?但是你想过为什么会输出这个结果吗?一:首先看Demo1
输出结果:<strong><span style="font-size:18px;">public class Dog1{ Dog1(){ } public static void main(String[] args) { Dog1 d = new Dog1(); System.out.println(d); } }</span></strong>
Dog1@77aaf64d
我们经常会看到对象的输出结果是这个样子?但是你想过为什么会输出这个结果吗?
明白这个输出,需要了解一下Object这个类,Object类是java所有类的基类。
也就是上面的类定义,其实等价于
<strong><span style="font-size:18px;">public class Dog1<span style="color:#ff0000;"> extends Object{</span></span></strong>
<strong><span style="font-size:18px;">Object类中有一个toString()方法</span></strong>
<strong><span style="font-size:18px;">它的实现代码为:</span></strong>
<strong><span style="font-size:18px;"> <span style="color:#ff0000;">public String toString() { <span style="white-space:pre"> </span> return getClass().getName() + "@" + Integer.toHexString(hashCode()); }</span> </span></strong>
System.out.println(d);
//等价于System.out.println(""+d);
//等价于System.out.println(""+d.toString());
//任何对象与字符串拼接,都会将对象转化为字符串类型,相当于调用对象的toString方法。这里就会调用父类的toString()方法二:再来看Demo2
public class Dog2{ Dog2(){ } public String toString() { return "i am a dog"; } public static void main(String[] args) { Dog2 d = new Dog2(); System.out.println(d); }
来看输出结果:i am a dog
为什么呢?
因为Dog2重写Override了父类Object的toString()方法。就会调用自己的toString方法。
建议类最好都重写一下Object的toString()方法。
-
方法,单独写一个新方法实现类似重新toString()的方法不行吗?有什么区别?为啥大家都执念的说要重写...
2020-10-18 14:26:29每每的问题或搜索为什么要重新toString()方法时,几乎100%的人都说因为toString()方法输出的是对象地址的16进制或哈希code表达...难道只是类都继承了Object里的toString()方法吗... 本人小白,谢谢大神答疑解惑 -
深入理解 Object.prototype.toString.call() 判断数据类型方法
2019-11-30 16:13:05为什么Object.toString.call(...难道真的像自己理解的那样,是通过call将[1,2,3]作为Object.toString的实参传递了进去吗?不是。 直接Object.toString([1,2,3])不能实现同样的功能吗?不能。 而实际上也有Array.__p...为什么Object.toString.call([1,2,3])返回[object Array]?可以直接[].toString()返回[object Array]吗?
难道真的像自己理解的那样,是通过call将[1,2,3]作为Object.toString的实参传递了进去吗?不是。
直接Object.toString([1,2,3])不能实现同样的功能吗?不能。
而实际上也有Array.__proto__.toString()
这种形式,所以是可以直接调用arr.toString()的,这样能检测出吗?不行。那到底是什么原因?
先来肝一个表格。为什么会出现下面的情况?
Object.toString.call(Array)//"function Array() { [native code] }" Object.prototype.toString.call(Array)//"[object Function]"
答案在这里!
Object.toString()//"function Object() { [native code] }" Object.prototype.toString()//"[object Object]"
Object对象和它的原型链上各自有一个toString()方法,第一个返回的是一个函数,第二个返回的是值类型。
既然知道了不同,现在我们再来分析下
Object.prototype.toString.call(Array)//"[object Function]"
。
Array对象本身返回一个构造函数,Array//ƒ Array() { [native code] },而Object.prototype.toString()返回的是//"[object Type]"的形式,通过call将Array的this上下文切换到Object,从而调用了Object.prototype.toString(),因此返回[object Function]
。需要注意的是:Math.toString()直接返回"[object Math]"。
实际开发中,我们用到最多的可能是:Object.prototype.toString.call([1,2,3])//"[object Array]"这种。
总结:
- 一般情况下,js中对象的toString(),返回字符串,内容与函数声明语法有关,例如[1,2,3].toString()//"1,2,3"
- 大多数都返回函数的完整源码,Array.toString()//"function Array() { [native code] }"
- 内置函数往往返回一个类似"[native code]"的函数体,需要配合call方法,比如Object.prototype.toString.call([1,2,3])//"[object Array]"
那么不可以直接Array.prototype.toString.call([1,3,4])吗?
不行!
因为Array,Function,Date虽然是基于Object进行创建的,但是他们继承的是Object.toString(),而不是Object.prototype.toString()。
再加深一遍印象:Object.toString()//"function Object() { [native code] }" Object.prototype.toString()//"[object Object]"
所以这就是必须用Object.prototype.toString()去检测类型的原因。
至于Object.prototype.toString()内部是怎么实现的,等到时机成熟再去深入。
参考:
作者:趁你还年轻233
链接:https://www.jianshu.com/p/e4237ebb1cf0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 -
Object.prototype.toString.call()方法及面试应用
2018-01-30 12:02:01今天面试遇到一个问题: “实现一个函数clone,可以对js中的5种...回来认真思考了一下,其实是在考察Object.prototype.toString.call()方法; JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 -
Java中继承toString方法_如何在Java中使用toString方法?
2021-03-09 00:19:26问题任何人都可以向我解释一下在474772436类中定义的toString()方法的概念吗?它是如何使用的,它的目的是什么?...类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字... -
java tostring怎么用_Java中如何使用toString方法
2021-03-09 02:13:35一、概述有人可以向我解释Object类中定义的toString()方法的概念吗?它是如何使用的,目的是什么?二、详解看Object.toString的官方文档:返回对象...toString用于类的方法Object返回一个字符串,该字符串由对象是其... -
没有为类型 object 定义方法 read()_你知道Object中有哪些方法及其作用吗?
2021-01-21 19:35:02大家天天都在使用toString()、equals()、hashCode()、waite()、notify()、getClass()等方法,或许都没有意识到是Object的方法,也没有去看Object还有哪些方法以及思考为什么这些方法要放到Object中。本篇就每个方法... -
getclass方法_你知道Object中有哪些方法及其作用吗?
2020-11-24 10:41:15大家天天都在使用toString()、equals()、hashCode()、waite()、notify()、getClass()等方法,或许都没有意识到是Object的方法,也没有去看Object还有哪些方法以及思考为什么这些方法要放到Object中。本篇就每个方法... -
你知道Object中有哪些方法及其作用吗?
2019-06-17 14:18:49大家天天都在使用toString()、equals()、hashCode()、waite()、notify()、getClass()等方法,或许都没有意识到是Object的方法,也没有去看Object还有哪些方法以及思考为什么这些方法要放到Object中。本篇就每个方法... -
java 一切object_java中object是所有类的父类吗
2021-03-09 04:59:16Java中Class类与Object类之间有什么关系?生命是一种喜悦,愿小编的生活,永远充满喜悦,祝生日...典型的,可以使用Object类中的toString()方法。 Class类是用于java反射机制的,一切java类,都有一个对应的Class对... -
在java中什么是所有类的父类_java中object是所有类的父类吗
2021-03-14 02:05:04Java中Class类与Object类之间有什么关系?生命是一种喜悦,愿小编的生活,永远充满喜悦,祝生日...典型的,可以使用Object类中的toString()方法。 Class类是用于java反射机制的,一切java类,都有一个对应的Class对... -
使用Object.prototype.toString.call()进行数据类型的检测
2019-08-06 17:11:09举个栗子:用 typeof 判断一个对象变量,null 的结果也是 object,数组的结果也是 object,这样并不正确。 typeof操作符返回一个字符串,表示未经计算的操作数的类型;该运算符数据类型对应列表如下图所示: ... -
java中打印对象地址_如果已重新定义toString方法,如何打印对象的地址
2021-03-15 16:33:53我想同时使用已重新定义的toString方法和从Object类继承的默认方法。我未能使用该超级修饰符来实现该方法。这仅用于教育目的。如果您可以看一下我代码中的注释,那么我想得到的内容将更加清楚。你能在这里帮我吗?我... -
new Thread 传给线程的方法参数必须是Object。不是线程安全。
2018-06-06 16:50:56tatic void Main(string[] args){Thread ThreadInputProc = new Thread( xaa.AccetpFromServer);...ThreadInputProc.Start(args[0].ToString());。。。。} public void AccetpFromServer(str... -
解密Object中的常用方法(equals和toStirng 源码分析)
2021-03-26 10:01:53我们都知道Object是所有对象的祖先类,那么它里面的一些方法你是否都理解了呢? 下面我们就以源码为基础来学习这些看似简单的方法吧!! 1.equals方法 我们都知道String中的equals是比较两个字符串对象内容是否相同... -
有料面试题之--Object里面的方法
2016-03-25 20:40:00阿里的面试题里面有个题很奇妙:你知道Object类里面有哪些方法吗? 绝大部分猿类都知道 有hashcode 、equals 、clone、toString 只有部分人会回答有 wait和notify,notifyall,finalize 我原来也不清楚wait和... -
JavaScript中new Object()是什么?
2020-11-07 09:28:53js和其它语言一样,一切对象的基类都是Object,所以,new Object()和简易的{}是同样的空对象,就是默认的对象。本来我以为{}应该是一个没有任何属性和方法的对象,但事实证明,var a = {},a.toString()等 -
js中var a=new Object()和var a={}有什么区别吗?
2018-08-02 13:52:00应该是没有区别的,两者都是生成一...本来我以为{}应该是一个没有任何属性和方法的对象,但事实证明,var a = {},a.toString()等Object对象所具有的方法,a都具有。由此也可以判断,其实a = {}就是a = new Objcet(... -
关于JavaScript中的Object的Key一定是字符串的思考
2019-05-29 07:41:02大家有思考过Object的key为什么要用toString()方法转换成字符串吗? 今上午查阅了一下资料,得到了一个大致的结论: 在js中的Object,本质上是键值对的集合,是基于Hash表存储变量的。 可以通过Hash表的散列算法进行... -
妙用Object
2015-10-10 18:04:00妙用Object ...很简单,因为所有的引用类型都继承自Object这个类,而“ToString”这个方法便是Object的一个成员,所以所有的引用类型都拥有“ToString()”这个成员。接下来,我们将通过几段代码来深入理解... -
Java中对象克隆使用的Object中的clone方法(Protected),为什么不能外包子类中直接调用,而还要进行方法...
2020-06-08 15:14:18protected方法不是说只要外包继承了就可以直接调用父类的protected方法吗?那Object类是被各类默认继承的,为什么clone方法还要子类覆写,不能直接调用呢?这点不懂,请教大家。下面是参考代码。 ```java package ... -
java常用类所有方法吗_java基础之常用类的方法
2021-03-09 20:26:262.要掌握的方法A:toString() 返回对象的字符串表示例 student [name = null, age = 0]可以自动生成 快捷键:alt+shift+s+sB: equals() 比较两个对象是否相同,一般比较对象的成员变量的值是否相同。例 (s1.equals(s2... -
java Object解析
2018-11-26 17:14:00java 的Object类也比较简单,有equals(Object)、toString()、finalize() java方法和hashcode()、clone()、wait()、notify()、notifyAll()、getClass()的native方法。 远吗如下: 1 public class... -
java里的clone方法,super.clone()到底调用的是谁??
2010-08-02 09:59:00返回super.toString()竟然是Location。 不是应该继承自Object的吗?super为什么不是Object? 还有,这个clone方法到底是怎么工作的呢? 望老师同学帮忙解答!!java代码 /** * 测试...