1、Java所有的对象都是Object类的实例,都可以直接调用该类中定义的方法,这些方法称为通用方法

2、toString()方法即为Object类中定义的通用方法之一

3、平时我们如果在控制台直接打印输出一个对象的实例时,其实调用的就是Object类的toString()方法,如下:

class Apple{
private String color;
private double weight;
private String name; public Apple(){ } public Apple(String name){
this.name=name;
}
} public class ToStringTest{
public static void main(String[] args){
Apple p=new Apple("张三");
//-下面两个输出结果完全一致,
//-虽然输出的是Apple类的实例对象
//-其实输出的是Object类的toString()方法
//-可以用重写Object类toString()方法的这种方式来给对象写一个"自我描述"
System.out.println(p);
System.out.println(p.toString());
}
}

输出结果:

针对上面的输出结果进行分析:

1、System.out的println()方法只能在控制台上输出字符串,而Apple类实例是一个在内存中的对象,当用这种方法输出对象时,实际上输出的是Object类中的toString()方法返回值

2、toStrong()方法是Object类里的一个实例方法,所有的Java类都是Object类的子类,所以所有Java对象都有toString()方法

3、toString()方法是一个“自我描述”的方法,当输出某实例对象时,可以通过重写自定义等方式为对象实现输出自我描述的信息

4、Object类的toString()方法默认返回该对象实现类的“类名+@+hashcode”值(如上结果中看到的那样),这个返回值不能实现自我描述功能,所以需要重写Object类的toString()方法来实现,如下:

class Apple{
private String color;
private double weight;
private String name; public Apple(){ } public Apple(String name){
this.name=name;
} public Apple(String color,double weight){ this.color=color; this.weight=weight; } //-重写Object类的toString()方法
public String toString(){ return "这是Apple类,里面有一个苹果,颜色是:"+this.color+",重量是:"+weight; }
} public class ToStringTest{
public static void main(String[] args){
Apple p=new Apple("红色",3.2);
System.out.println(p);
}
}

运行结果:

Object类中通用方法之:toString()方法的更多相关文章

  1. Java基础:Object类中的equals与hashCode方法

    前言 这个系列的文章主要用来记录我在学习和复习Java基础知识的过程中遇到的一些有趣好玩的知识点,希望大家也喜欢. 一切皆对象   对于软件工程来说面向对象编程有一套完整的解决方案:OOA.OOD.O ...

  2. Object类中常见的方法,为什么wait notify会放在Object里边

    toString():输出一个对象的地址字符串(哈希code码):可以通过重写toString方法,获取对象的属性! equals():比较的是对象的引用是否指向同一块内存地址, 重写equals() ...

  3. 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)

    java中的hashcode.equals和toString方法都是基类Object的方法. 首先说说toString方法,简单的总结了下API说明就是:返回该对象的字符串表示,信息应该是简明但易于读 ...

  4. Java Object类中toString方法的重写

    Object类中的tostring方法的: 当我们输出一个对象时,实际是输出的是这个类中的tostring方法,是一个地址值,而不是类中的属性. 1 一:子类没有重写Object类中的toStrinn ...

  5. 对Object类中方法的深入理解

    看一下API中关于Object的介绍: 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 那么Object中到底有哪些方法,各自有什 ...

  6. Object类中方法详解

    目录 概述 hashCode方法 getClass方法 toString方法 equals方法 clone方法 finalize方法 概述 Object 是类层次结构的根类.每个类都使用 Object ...

  7. -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中

     本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁  sleep()和wait()方法的区别 为什么wait( ...

  8. Object类中的五种方法

    clone() Object类源码:protected native Object clone() throws CloneNotSupportedException; 这里有个问题:为什么Sun公司 ...

  9. 25. object类中的一些方法分析

    1. Object java是面向对象语言,所以其核心思想: 找合适的对象,做合适的事 Object是所有类的终极基类.任何一个类都继承了Object类 2. Object的部分函数列表 1)Stri ...

随机推荐

  1. 微信小程序教程系列

    微信小程序教程系列 来源:       https://blog.csdn.net/michael_ouyang/article/details/56846185 相关连接:http://blog.c ...

  2. zabbix 监控windows端cpu使用率百分比

    参考网站:http://www.fyluo.com/?post=108 zabbix自带的模版没有CPU使用率(百分比)这个监控项,那么我们可以通过添加计数器的方式实现CPU百分比的监控. 在zabb ...

  3. sql server自增列值的获取

    IDENT_CURRENT(tbname) 是看表对象.所以没有受作用域限制. SCOPE_IDENTITY()  受作用域限制.同一个会话里面不同作用域也会有差异 @@IDENTITY  受会话限制 ...

  4. Alpha版本检测报告

    1.Alpha版本测试报告 发布一篇随笔,作为项目的测试报告,内容包括: (1)测试计划 测试人员 工作安排 覃一霸 编写测试报告 张江波 执行测试.截图测试结果 测试功能 功能 描述 效果 结果 登 ...

  5. shiro 注解式前提

    <aop:config proxy-target-class="true"></aop:config> <bean class="org.a ...

  6. as3 air 保存文本内容的换行

    private function newData() { var str:String="<root>"; for(var i in charCode_arr) { s ...

  7. 常用Sql语句,及注意事项

    目录: sql语句 sql命令语句 关键字 sql语句 SELECT * FROM V$reserved_words;--查询oracle预留关键字 SELECT * FROM V$version;- ...

  8. eclipse上一次没有正确关闭,导致启动的时候卡死错误解决方法

    关于 eclipse启动卡死的问题(eclipse上一次没有正确关闭,导致启动的时候卡死错误解决方法),自己常用的解决方法: 方案一(推荐使用,如果没有这个文件,就使用方案二): 到<works ...

  9. SOA和微服务到底是什么关系

    本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上 ...

  10. VirtualBox如何扩展虚拟机Ubuntu的硬盘容量?

    一.问题描述 刚刚在VirtualBox中使用Ubuntu虚拟机中,出现了虚拟硬盘不够用的情况.  乖乖,查了一下磁盘空间,如下所示: df -H 原来是上午安装Ubuntu虚拟机的时候,选择了动态分 ...