Object类 中toString()方法详解+String类

您所在的位置:网站首页 tostring方法输出数组 Object类 中toString()方法详解+String类

Object类 中toString()方法详解+String类

2023-11-25 19:01| 来源: 网络整理| 查看: 265

Object类 中toString()方法详解 1.1 概述

java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。

如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:

public class MyClass /*extends Object*/ { // ... }

根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。

public String toString():返回该对象的字符串表示。 1.2 toString方法 方法摘要 public String toString():返回该对象的字符串表示。

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

覆盖重写

如果不希望使用toString方法的默认行为,则可以对它进行覆盖重写。例如自定义的Person类:

public class Person { private String name; private int age; @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } // 省略构造器与Getter Setter } tostring()方法

思考:为什么定义string类型的字符串, 通过输出语句就能把字符串打印出? 因为String类当中已经对tostring方法进行的重写

public class TestString { public static void main(String[] args) { String str = "abc"; System.out.println(str);//打印abc // 像string,Date,File 包装类等都重写了Object类中的tostring()方法 // 使得调用对象的tostring()时,返回"实体内容"信息 System.out.println(str.toString()); //同样打印abc } } //tostring()的使用: 1.当我们输出一个对象的引用是,实际上就是调用当前对象的tostring() Customer cus=new Customer(); System.out.println(cus.tostring()); System.out.println(cus);//输出的内容一样 2.像string,Date,File 包装类等都重写了Object类中的tostring()方法 使得调用对象的tostring()时,返回"实体内容"信息 3.自定义类也可以重写tostring()方法,当调用此方法时,返回对象的”实体内容“ 重写tostring()方法: public String toString(){ return .......... } 案例分析 //student类会继承object类,当然也会继承object类中的toString()方法 public class Student /*extends object */ { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } // 省略构造器与Getter Setter } //******************************************************************** //1.不重写toString()方法 //没有重写toString()方法,会默认继承object类中的toString方法 public class TestString { public static void main(String[] args) { Student s = new Student("张三",18); System.out.println(s);//打印的不是 张三,18 而是cn.itcast.day08.Student@1540e19d } } //2.重写Student类中的toString()方法 public class Student /*extends object */ { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } // 省略构造器与Getter Setter } public class TestString { public static void main(String[] args) { Student s = new Student("张三",18); System.out.println(s);//重写后打印:Student{name='张三', age=18} System.out.println(s.toString());//Student{name='张三', age=18} } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3