java 中重写toString()方法
toString()方法 一般出现在System.out.println(类名.toString());
toString()是一种自我描述方法 本身返回的是 getClass().getName() + "@" +Integer.toHexString(hashCode());
也就是 类名 + @ +hashCode的值
重写toString() 只会对类生效,并不能字符串生效; 例如
public class pratise {
String num="aaaa";
public String toString(){
return num;
}
public static void main(String[] args){
String s1="111";
System.out.println(s1.toString());
//输出111 而并非aaaa;
}
}
重写toString()对类生效
package com.stu; //用toString 重写一个类
public class Car { //成员变量
private String carNo;
private String carName;
private String color;
private double price; //有参构造函数
Car(String carNo,String carName,String color,double price){
this.carNo=carNo;
this.carName=carName;
this.color=color;
this.price=price;
} //get set方法
public String getCarNo(){
return carNo;
} public void setCarNo(String carNo){
this.carNo=carNo;
} public String getCarName() {
return carName;
} public void setCarName(String carName) {
this.carName = carName;
} public String getColor() {
return color;
} public void setColor(String color) {
this.color = color;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
}
//重写toString();
public String toString(){
return "这个汽车名叫 "+carName+",型号是 "+carNo+",汽车颜色 "+color+",价格 "+price;
} public static void main(String[] args){
//创建一个Car的对象
Car myCar=new Car("苏A 4995","长安汽车","灰蓝色",70000.00); //类名开头字母大写
System.out.println(myCar.toString());
}
}
输出结果:

假如不对toString()进行重写则 输出结果:
com.stu.Car@2542880d ==> 类名 + “@” +hashCode值
2.为什么要重写toString()方法
在Object类里面定义toString()方法的时候返回的对象的哈希code码,这个hashcode码不能简单明了的表示出对象的属性。所以要重写toString()方法。
当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法。
默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址如果想自定义输出信息必须重写toString()方法。
注意事项:
1.必须被声明为public
2.返回类型为String
3.方法的名称必须为toString,且无参数
4.方法体中不要使用输出方法System.out.println()
java 中重写toString()方法的更多相关文章
- Java中的toString()方法
Java中的toString()方法 目录 Java中的toString()方法 1. 对象的toString方法 2. 基本类型的toString方法 3. 数组的toString ...
- Java中的 toString 方法
1. Object 类中定义有 public String toString() 方法,其返回值是 String 类型,描述当前对象的有关信息: 2. 在进行 String 与其它类型数据的连接操作时 ...
- 一文搞懂--Java中重写equals方法为什么要重写hashcode方法?
Java中重写equals方法为什么要重写hashcode方法? 直接看下面的例子: 首先我们只重写equals()方法 public class Test { public static void ...
- 源码浅谈(一):java中的 toString()方法
前言: toString()方法 相信大家都用到过,一般用于以字符串的形式返回对象的相关数据. 最近项目中需要对一个ArrayList<ArrayList<Integer>> ...
- JAVA中重写equals()方法的同时要重写hashcode()方法
object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...
- JAVA中重写equals()方法为什么要重写hashcode()方法?
object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...
- java中的toString方法
对于我这种用惯了C++的人来说,突然见到有人写java程序的时候竟然将整数和String类型的变量使用+连接到一起,感到非常奇怪,追究了下原因. 原来所有的java对象都有toString()方法,而 ...
- 关于Java中的toString()方法
package c07; class ewq{ public String toString() { return "ppppppppp"; } public static voi ...
- JAVA中重写equals()方法为什么要重写hashcode()方法说明
重写hashCode()时最重要的原因就是:无论何时,对同一个对象调用hashCode()都应该生成同样的值.如果在将一个对象用put()方法添加进HashMap时产生一个hashCode()值,而用 ...
随机推荐
- Java内存管理:Java内存区域 JVM运行时数据区
转自:https://blog.csdn.net/tjiyu/article/details/53915869 下面我们详细了解Java内存区域:先说明JVM规范定义的JVM运行时分配的数据区有哪些, ...
- mysql触发器详解 mysql触发器
目录 21.1. CREATE TRIGGER语法 21.2. DROP TRIGGER语法 21.3. 使用触发程序 MySQL 5.1包含对触发程序的支持.触发程序是与表有关的命名数据库对象,当表 ...
- MYSQL 优化器 源码解析
http://www.unofficialmysqlguide.com/introduction.html https://dev.mysql.com/doc/refman/8.0/en/explai ...
- mysql使用问题记录
Mysql Access denied for user 'root' ERROR 1045 (28000): Access denied for user 'root'@'localhost' (u ...
- bootstrapTable treegrid的使用
最近打算自己弄一个后台,在整顿树形插件的时候,遇到问题,bootstrapTable treegrid最开始是怎么都显示不了树形,然后是数据出不来, 现在来记录下. 问题1:最开始怎么都显示不出来的问 ...
- 博客搬家了,新域名dinphy.wang
博客搬家了,新域名 dinphy.wang 博客搬家了,新域名 www.dinphy.wang 博客搬家了,新域名 dinphy.wang 博客搬家了,新域名 w ...
- R语言与机器学习学习笔记
人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经网络由大量的人工神经元联结进行计算.大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自 ...
- Linux操作系统配置Go语言编程环境
之前一直在windows下写Go,现在工作环境切换至Linux下,因此写下此文,记录安装Go环境的过程. 操作系统:CentOS7.5 一.安装步骤 1,下载Go语言安装包 yum install g ...
- Houdini技术体系 基础管线(三) :UE4 Landscape Component的多选支持 下篇
背景 上篇中,我们介绍了如何修改Houdini Enigne来设置单个Landscape Compnent的Height和Layer的数据,但原生Houdini Engine并不支持多选Compone ...
- 通过java实现解压zip,rar的代码
package com.zuidaima.main; import java.io.File; import java.io.FileInputStream; import java.io.FileO ...