详解每个类中toString()方法
2016-03-26 09:08
260 查看
在我们定义一个类的时候都会创建一个String 类型的toString()方法那么这个方法真正的作用及原理,为什么在输出类变量的时候会输出toString()的返回值
1我们定义的类默认的父类是Object类型,请看下面的源代码
public void println(Object x)
{
String s = String.valueOf(x);
synchronized (this)
{
print(s);
newLine();
}
}
详解:当我们把一个有指向对象的类变量给Object类型的变量,因为Object是父类变量所以x指向子类中拥有父类的方法,(多态方法)
2下面请看valueOf(x)方法的源代码
public static String valueOf(Object obj)
{
return (obj == null) ? "null" : obj.toString();
}
详解:当我们把x给obj的时候obj会得x所指向的对象,并判断当前所指向的对象是否为空,如果不为空将返回当前对象的toString()类型,也就是子类中的toString 类型
3.下面我们看以下toString()方法的源代码
public String toString()
{
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
//toString()方法是Object类中的一个方法,返回的是ss.链表@154283a
//当前类的名字和@还有一串字符串,至于字符串的产生原因这里的就不叙述了因为我们主要说的事toString();
4.总上所述,在一个类中定义一个toString的方法实际上为了不用通过类变量调用方法来达到显示值。
1我们定义的类默认的父类是Object类型,请看下面的源代码
public void println(Object x)
{
String s = String.valueOf(x);
synchronized (this)
{
print(s);
newLine();
}
}
详解:当我们把一个有指向对象的类变量给Object类型的变量,因为Object是父类变量所以x指向子类中拥有父类的方法,(多态方法)
2下面请看valueOf(x)方法的源代码
public static String valueOf(Object obj)
{
return (obj == null) ? "null" : obj.toString();
}
详解:当我们把x给obj的时候obj会得x所指向的对象,并判断当前所指向的对象是否为空,如果不为空将返回当前对象的toString()类型,也就是子类中的toString 类型
3.下面我们看以下toString()方法的源代码
public String toString()
{
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
//toString()方法是Object类中的一个方法,返回的是ss.链表@154283a
//当前类的名字和@还有一串字符串,至于字符串的产生原因这里的就不叙述了因为我们主要说的事toString();
4.总上所述,在一个类中定义一个toString的方法实际上为了不用通过类变量调用方法来达到显示值。
相关文章推荐
- 基于SoCkit的opencl实验1-基础例程
- 5-36 复数四则运算 c语言
- 【杭电】[1787]GCD Again
- WebService的开发、部署、调用
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- 解决spark运行中failed to locate the winutils binary in the hadoop binary path的问题
- 利用UIStoryboard实现从一个视图控制器界面跳到另一个视图控制器界面
- 读写本地文件
- Installing PHP5 on Ubuntu Server
- 共有11款Python 中文分词库开源软件
- php异步发送请求
- $.fn.extend 与$.extend
- kali_notes
- Java图形化界面开发
- tools:replace的前缀 tools未绑定
- Struts2访问Servlet API
- STLvector的内存问题
- jQuery常用的一些技巧汇总
- Mysql To Charts(三)--读写Mysql
- Android日历(Calendar,dataPicker)