java 中重写toString()方法

java 中重写toString()方法

toString()方法 一般出现在System.out.println(类名.toString());

toString()是一种自我描述方法 本身返回的是 getClass().getName() + "@" +Integer.toHexString(hashCode());

也就是 类名 + @ +hashCode的值

重写toString() 只会对类生效,并不能字符串生效; 例如


 1 public class pratise {
 2     String num="aaaa";
 3     public String toString(){
 4         return num;
 5     }
 6    public static void main(String[] args){
 7        String s1="111";
 8        System.out.println(s1.toString()); 
 9        //输出111 而并非aaaa;
10    }
11 }

 

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

### 回答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、付费专栏及课程。

余额充值