Java SE学习笔记 --->高级类特性 ---> toString() 方法

时间:2022-09-19 00:11:32

概述

  toString() 方法在面向对象当中十分常见,使用频率很高,和equals() 方法一样,也是Object类中定义的方法。

jdk中 源码:

java.lang.Object类中ToString() 方法的定义如下:

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

知识点:

1.toString()方法在 Object 类中定义。其返回值是String类型,返回类名和它的引用地址

  如:

public class TestToString {
public static void main(String[] args) {
Person p1 = new Person("AA", 10);
System.out.println(p1.toString());  //com.klx.learn7.Person@d17
System.out.println(p1); //com.klx.learn7.Person@d17 }
}

    com.klx.learn7.Person@d17

    @前边的“com.klx.learn7.Person” 对象所在的类

    @后边的"d17" 该对象的实体在堆空间中的首地址值(16进制)

2.当我们打印一个对象的引用时,实际上默认调用的就是这个对象的toString()方法,在进行String与其他类型数据的链接操作时,也会会自动调用toString() 方法。

  例:

Date now=new Date();
System.out.println(“now=”+now);
相当于:System.out.println(“now=”+now.toString());//now=Date@122345

3.当我们打印的对象所在的类 没有重写Object 中的toString() 方法时,那么调用的就是Object 中定义的toString() 方法,返回此对象所在的类以及对应的堆空间对象实体的首地址值。

4.当我们打印的对象所在的类 重写了toString() 方法时,调用的就是我们自己重写的toString() 方法。

比如:在所在的类中做如下定义:

public String toString() {
return "Person: name=" + name + " age:" + age;
}

那么当我们再次打印之前的

System.out.println(p1.toString());  //Person: name=AA age:10
System.out.println(p1); //Person: name=AA age:10

5.一般来说,在设计、新建一个类时,都提供一个toString() 方法。

常常这样重写:将对象的属性信息返回。

可以手动实现,也可以用eclipse自动调用(Source--->Generate toString())

6.java 中 的String类或者 Date类、包装类、File类等,已经实现了Object类中 toString() 方法的重写

7.可以根据需要再用户自定义类型中重写toString() 方法。 如String 类重写了toString() 方法,返回字符串的值。

Java SE学习笔记 --->高级类特性 ---> toString() 方法的更多相关文章

  1. 《深入Java虚拟机学习笔记》- 第19章 方法的调用与返回

    <深入Java虚拟机学习笔记>- 第19章 方法的调用与返回

  2. Java学习笔记-File类的基本方法

    要渐渐养成写博客的习惯-----> 前段时间看Mars的java中的I/O流没怎么懂,发现I/O流好难啊.今天重新看一遍其他教学,还有书籍,做些笔记,记录下每天的学习生活. File类的一些方法 ...

  3. 《Effective Java》学习笔记 —— 枚举、注解与方法

    Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...

  4. Android(java)学习笔记167:Java中操作文件的类介绍(File &plus; IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  5. Android(java)学习笔记110:Java中操作文件的类介绍(File &plus; IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  6. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  7. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  8. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  9. Android(java)学习笔记267:Android线程池形态

    1. 线程池简介  多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.     假设一个服务器完成一项任务所需时间为:T1 创建线程时间, ...

随机推荐

  1. Sealed密封类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; #region 概述 //在 ...

  2. org&period;openqa&period;selenium&period;WebDriverException&colon; f&period;QueryInterface is not a function Command duration or timeout&colon;

    今天偶遇一个问题,运行项目时,发现这个问题: org.openqa.selenium.WebDriverException: f.QueryInterface is not a functionCom ...

  3. J2EE项目应用开发过程中的易错点

    场景一 实体类型与数据库类型不一致,在进行条件查询过程中不走索引 分析 字段值类型和数据库定义的字段类型不一致时,MySQL就会在内部做数据转化, 它的处理行为就会和我们期望的有些不一样,当我们使用整 ...

  4. PL&sol;SQL练习

    简单结构 set serveroutput on; DECLARE v_name ); BEGIN v_name := 'hello'; dbms_output.put_line(v_name); E ...

  5. opencart 3添加pdf文档下载功能

    opencart 3适合做外贸商城,如果能在产品页那边添加pdf文档功能是最好的,符合国外用户的使用习惯,增加客户的黏性.其实opencart已经有一个downloadable product可下载产 ...

  6. 将数据转换成树型层级的Json格式的String

    有时候我们项目里面需要将树型关系的数据转换成Json格式的String字符串 假设数据库中的数据如下 需要转换后输出的字符串的结果如下(对应的层级的关系) [ {name:'爷爷',id:'1',co ...

  7. 练习:javascript弹出框及地址选择功能&comma;可拖拽

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Xcode8&period;0 &sol; OS X EI Capitan 10&period;11&period;6 提交报错90111

    改用新系统和新版xcode(都是正式版)后,提交App Store审核时报错: INFO ITMS-90111: "Beta Toolchain. 构建新的 App 和App 更新时,必须使 ...

  9. JavaScript中对数据库表中某一个字段进行赋值

    场景如下,通过下拉列表选择一个选项(如“启用”和“不启用”),启用用0表示,不启用用1表示. enableFlag是表中一个字段,我猜date:后面就是对该字段的赋值.

  10. Maven 整合SSH框架

    1. 传递依赖冲突 1.1 传递依赖:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C是A的传递依赖; A(项目)又依赖D,D依赖C(1.2版本),此时,C有两个版本,产生冲突; 1.2 ...