java_toString方法_重写

1、Object类

在JDk中提供一个Object类,它是所有类的父类,即每个类都直接或间接的继承自该类。
任何类中,都可以直接使用Object类中定义的方法

2、toString

toString是Object类中的一个方法
toString方法 打印的是包名+ 类名 @ hashCode(地址十六进制)
其实就是getClass().getName()+"@"+Integer.toHexString(hashCode())
1)getClass().getName()代表返回对象所属类的包名.类名,即pers.day02.Anima。
2)@对应@;
3)Integer.toHexString(hashCode())代表将对象的哈希值用16进制表示,其中hashCode()代表返回该对象的哈希值。

3、重写 toString

在实际开发中,通常希望toString()方法返回的不只是基本信息,所以Object的toString()方法通常会被重写

public class Person {

		private String name;
		private String idCard;
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getIdCard() {
			return idCard;
		}
		public void setIdCard(String idCard) {
			this.idCard = idCard;
		}
		
		
		public Person() {
		}
		public Person(String name, String idCard) {
			this.name = name;
			this.idCard = idCard;
		}
		
//	方法重写,重写父类(Object(默认的父类))的 toString方法
		 public String toString() {
			 String classInfo = super.toString();
			 /*调用父类的toString方法
			  * toString方法 打印的是包名+ 类名 @ hashCode(地址十六进制)
			  * */
			 return "Person[name : " + name + ",idCard:" + idCard + "]" +"\n"+ classInfo;
//			 "\n"(换行)
		 }
		
		
		public static void main(String[] args) {
			Person p1 = new Person("章北海",	"311709000910");
			System.out.println(p1.getName() +"\n"+ p1.getIdCard());
			// 当我们直接输出一个对象 就相当于调用此对象的toString方法 打印的是包名+ 类名 @ hashCode 十六进制
			System.out.println(p1);
			System.out.println("===========================");
			System.out.println(p1.toString());
		}

}

结果:
在这里插入图片描述

### 回答1: 好的,以下是Java重写toString方法的示例: ```java public class MyClass { private String name; private int age; public MyClass(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "MyClass{" + "name='" + name + '\'' + ", age=" + age + '}'; } } ``` 在这个示例中,我们创建了一个名为`MyClass`的,并在构造函数中初始化了`name`和`age`实例变量。我们使用`@Override`注解来重写`toString`方法,该方法将返回一个包含`name`和`age`字段值的字符串表示形式。注意,我们在返回的字符串中使用了字符串连接运算符`+`和转义字符`\`来生成一个格式化的字符串。 ### 回答2: 在Java中,每个都会隐式继承Object,它包含了一些通用的方法,其中包括toString()方法。这个方法的作用是将对象转换成字符串表示形式。当我们没有在中显式地重写toString()方法时,调用对象的toString()方法会返回一个由名,'@'符号和对象的哈希码组成的字符串。 为了让toString()方法返回符合我们的需求的字符串表示形式,我们可以在重写方法。通过重写toString()方法,我们可以自定义返回的字符串,以使其包含我们认为重要的属性或状态信息。 重写toString()方法的步骤如下: 1. 在中加入toString()方法的定义。 2. 在该方法内部,构造一个包含的属性或状态信息的字符串。可以使用字符串拼接操作符("+")将不同的属性和信息连接在一起。 3. 返回构造的字符串。 例如,假设我们有一个名为Student的,它包含学生的姓名和年龄信息。我们可以重写toString()方法,以返回一个包含学生姓名和年龄的字符串表示形式。代码示例如下: public class Student { private String name; private int age; // 构造函数和其他方法 @Override public String toString() { return "Student: [name=" + name + ", age=" + age + "]"; } } 通过调用Student对象的toString()方法,可以得到一个似于"Student: [name=Tom, age=20]"的字符串。这个字符串提供了学生的姓名和年龄信息,更符合我们的需求。 总之,重写toString()方法可以让我们得到符合需求的对象字符串表示形式,以便更好地理解和调试代码。 ### 回答3: 在Java中,每个继承Object,而Object中有一个名为toString()的方法。这个方法用于返回一个表示该对象的字符串。 然而,Object中默认的toString()方法返回的是对象的哈希码值的字符串表示。这对于实际开发中的调试和打印输出来说往往不够直观和有用。 因此,在自定义中,我们可以重写toString()方法,来返回我们所需的信息。 要重写toString()方法,我们需要按照以下步骤进行: 1. 在中添加一个public修饰的toString()方法。 2. 在该方法中,以字符串的形式返回我们所需的信息。 例如,假设我们有一个名为Person的,该具有name和age两个属性,我们希望在调用toString()方法时返回"姓名:XXX,年龄:XXX"的字符串表示。 我们可以这样重写toString()方法: ``` public class Person { private String name; private int age; // 构造方法和其他方法省略 @Override public String toString() { return "姓名:" + name + ",年龄:" + age; } } ``` 这样,当我们通过调用Person对象的toString()方法时,就会返回符合我们要求的字符串表示。 通过重写toString()方法,我们可以在输出对象时获得更清晰和有用的信息,方便调试和理解代码。而且,许多Java库中的,如String、Integer等,已经重写toString()方法,使得输出它们时获得更有意义的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值