Java 值类型与引用类型 神奇的toString()方法

简介: 本文目录1. 前提2. toString()是啥3. String方法的toString()4. System.out.println的相关

1. 前提

首先,Java中的类型分为值类型与引用类型,具体区别是:


值类型(如int、double)变量中保存的是值,例如int i=1;中,i保存的是1。


引用类型(如String)变量中保存的是地址,例如String str="1";中,str保存的并不是字符串1,而是该字符串在内存中的地址。


2. toString()是啥

OK,那么为啥System.out.println(i)就是输出i保存的内容,而System.out.println(str)输出str指向的地址的内容。


其实很简单,在System.out.println()函数执行时,如果发现参数是值类型,那就输出值,如果发现参数是引用类型,就会输出该参数的toString()方法。


那么toString()到底是啥,toString()实际上是定义在Object类中的方法, 而Object类是所有方法的基类,也就是说实际上所有的Java类都是继承这个类的。


例如你定义一个Student类,他就已经有.toString()方法了,原因就是继承自Object,而输出org.maoge.demo.StudentDemo@4511e86f这样形式的内容,就是Object基类定义的toString()方法的功能。


package org.maoge.demo;

public class StudentDemo {

public static void main(String[] args) {

 StudentDemo sd=new StudentDemo();

 System.out.println(sd.toString());//输出org.maoge.demo.StudentDemo@4511e86f

}

}


3. String方法的toString()

OK,既然Object类中的toString()方法输出org.maoge.demo.StudentDemo@4511e86f的内容,为啥String方法的toString()是输出字符串类型指向地址中保存的字符串呢,这是因为String方法中的toString()被重写了,重写后的功能就是输出地址中的字符串。


所以我们的Student类也可以重写toString(),然后成为我们想要的功能,例如:


package org.maoge.demo;

public class StudentDemo {

public String toString(){

 return "StudentDemo是一个学生的示例";

}

public static void main(String[] args) {

 StudentDemo sd=new StudentDemo();

 System.out.println(sd.toString());//输出StudentDemo是一个学生的示例

}

}


4. System.out.println的相关

因为System.out.println能识别参数内容,然后对引用类型自动调用其toString()方法,所以无需在写System.out.println(sd.toString()),直接写System.out.println(sd)即可。

相关文章
|
Java
java实现遍历树形菜单方法——index.jsp实现
java实现遍历树形菜单方法——index.jsp实现
6 0
|
7天前
|
Java
Java中ReentrantLock中tryLock()方法加锁分析
Java中ReentrantLock中tryLock()方法加锁分析
9 0
|
27天前
|
Java
java中日期处理的一些工具方法
java中日期处理的一些工具方法
17 1
|
5天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
10 0
|
7天前
|
安全 Java
append在Java中是哪个类下的方法
append在Java中是哪个类下的方法
21 9
|
15天前
|
Java
Java通过反射获取类调用方法
Java通过反射获取类调用方法
18 0
|
26天前
|
Java
java面向对象高级分层实例_测试类(main方法所在的类)
java面向对象高级分层实例_测试类(main方法所在的类)
9 1
|
27天前
|
Java API Maven
email api java编辑方法?一文教你学会配置步骤
在Java开发中,Email API是简化邮件功能的关键工具。本文指导如何配置和使用Email API Java:首先,在项目中添加javax.mail-api和javax.mail依赖;接着,配置SMTP服务器和端口;然后,创建邮件,设定收件人、发件人、主题和正文;最后,使用Transport.send()发送邮件。借助Email API Java,可为应用添加高效邮件功能。
|
27天前
|
Java
【Java】重写compareTo()方法给对象数组排序
【Java】重写compareTo()方法给对象数组排序
10 0
|
27天前
|
Java
【Java】数组中的拷贝方法与初步理解深浅拷贝
【Java】数组中的拷贝方法与初步理解深浅拷贝
12 0