1、println输出分为两种类型
(1)基本数据类型:直接打印出来的就是值
(2)引用数据类型:println无法直接打印引用类型(数组,对象)——因为println在打印引用数据类型的时候,调用了Object类中的toString,此时toString方法还没有被重写,它返回的是String型的数据:类名+@+哈希值的16进制形式
2、要想打印引用数据类型的值而不是地址的方法:
(1)自己写的类,需要重写object类中的tostring方法,(idea可以以下方式自动生成)。
(2)数组
在Arrays工具类中专门提供了一个打印数组类型的方法——toString(数组)
😮(不要误会,这是Arrays自己的toString方法,不是从父类Object继承的那个toString方法,他们只是名字重合了而已。千万不要把他当成是对父类Object的toString方法的重写,因为他们的参数列表都不一样)
注意:若数组(如学生类数组)中存放的是引用类型的元素(如自己写的学生类)
解决方式:步骤1:先在学生类中重写tostring方法
步骤2:再调用Arrays.toString(Students);进行输出
(3)Sting类:开发人员已经自己重写objiect类的toSting()方法,所以用printlf打印出来的直接是值;
反思:
(1)Object 是 Java 类库中的一个特殊类,也是所有类的父类。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。
(2)println()在打印引用数据类型的时候打印的是Object类中的toString内容。