Java-toString方法

今天复习字符串时候又想到了toString方法,感觉蛮重要的,贴一段代码先。

public class StudyToString {
String id;
public StudyToString(String id) {
 this.id=id;
}
//    public String toString() {
//    
//    
//     return id;
//    }
    public static void main(String[] args) {
StudyToString st=new StudyToString("2");
System.out.println(st);
}
}

这样打印的结果是

ProducerConsumer.StudyToString@74904497代表包名.类名@地址形式

当把代码取消注释后结果是:2

很神奇,为什么加上tostring会这样呢?

toString
public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())



toString 是源自java Object类,在Object 内 定义为:返回 一个 类名@hashcode的字符串,可以overridden 用来返回 你认为有用的信息, toStrng 没有arguments  override:public String toString(){ // insert you code return "informations" } 因为在java中 Object类是基类,所以每个类都会有toString方法。 System.out.println(Object)实际上就是调用 object的toString方法。 我们用的比较多的就是 String类的toString 方法,String类重写了Object的toString方法,用于返回String的字符串值。

Java中,数据类一般都要重载toString()方法,如果没有重载该方法就相当于犯了编程的大忌。下面来说说该方法的使用。

toString()方法是object里面的方法,而所有类都继承自object,所以所有对象都有这个方法。特别是在使用System.out.println(xx)这样的语句时,如果“xx”不是String类型,就会调用“xx”对象的toString()方法。

这个方法是干什么的呢?

java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。那么你想把一个创建好的对象拿来输出怎么办?例如:

public class A{
    public String toString(){
    return "this is A";
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
A obj=new A();
System.out.println(obj);
 
 
  • 1
  • 2

会得到输出:this is A

按照print接受的类型来说,obj是不能直接输出的,那么是否代表这个是不能编译运行的呢?当然不是。因为当println检测到输出的是一个对象而不是字符或者数字时,那么它会去调用这个对象类里面的soString 方法。

即使你没有创建,因为是所有的类都是集成object类,所以自然也继承了这个方法。所以默认情况下,你输出一个对象,会调用这个对象继承的toString方法,而object里的这个方法,默认的功能是返回这个对象的名称。



toString 是源自java Object类,在Object 内 定义为:返回 一个 类名@hashcode的字符串,可以overridden 用来返回 你认为有用的信息, toStrng 没有arguments  override:public String toString(){ // insert you code return "informations" } 因为在java中 Object类是基类,所以每个类都会有toString方法。 System.out.println(Object)实际上就是调用 object的toString方法。 我们用的比较多的就是 String类的toString 方法,String类重写了Object的toString方法,用于返回String的字符串值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值