[转载] java之重写toString

参考链接: Java程序的输出| 重写Override

1.toString()就是是重写,对于一般的对象来说都会有这个方法,其实这个方法的目的,主要就是将对象按字符串的方式输出出来:打个比方,比如一个People类,里边有name,age这两个属性, 

如果你People p = new People(); p.toString(); 这么做的话,默认输出就是一个内存地址。 那么你会想到重写ToString();这个方法,按自己的方式去输出。 比如将toString的方法体改为:return p.name+p.age; 这个时候toString输出的东西就是People这个类的姓名和年龄了。 

重写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()方法。 

注意事项: 

①.必须被声明为public 

②.返回类型为String 

③.方法的名称必须为toString,且无参数 

④.方法体中不要使用输出方法System.out.println()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值