java实现 定义一个名为Square的类表示正方形,它有一个名为length的成员变量表示边长、一个带参数的构造方法,并重写equals()方法和toString()方法

1、题目

定义一个名为Square的类表示正方形,它有一个名为length的成员变量表示边长、一个带参数的构造方法;覆盖父类的equals()方法,当边长相等时认为两个Square对象相等,覆盖父类的toString()方法,要求当调用该方法时输出Square对象,格式为Square[length=100],这里100是边长,编码实现上述功能;

2、代码内容

正方形类

package com.hzcollege.shape;

import java.util.Objects;

/**
 * 正方形类
 *
 * @author hhh
 * @version 1.8.0
 */
public class Square {
    
    
    /**
     * 正方形边长
     */
    private double length;

    /**
     * equals
     * 重写父类的equals()方法
     * 当边长相等时认为两个Square对象相等
     *
     * @param o
     * @return 两个对象是否相等的结果
     */
    @Override
    public boolean equals(Object o) {
    
    
        //instanceof关键字用来判断o是否属于Square
        if (o instanceof Square)
            return this.length == ((Square) o).length;
        return false;
    }

    /**
     * toString
     * 重写父类的toString()方法
     * 返回格式为Square[length=100],这里100是边长
     *
     * @return Square[length=length]
     */
    @Override
    public String toString() {
    
    
        return "Square[" +
                "length=" + length +
                ']';
    }

    /**
     * Square
     * Square类的带参构造方法
     *
     * @param length
     */
    public Square(double length) {
    
    
        this.length = length;
    }

    /**
     * getLength
     * 获取正方体的边长
     *
     * @return 正方体边长
     */
    public double getLength() {
    
    
        return length;
    }

    /**
     * setLength
     * 修改正方体的边长
     *
     * @param length
     */
    public void setLength(double length) {
    
    
        this.length = length;
    }
}

测试类

package com.hzcollege.Demo;

import com.hzcollege.shape.Square;

/**
 * 正方形测试类
 *
 * @author hhh
 * @version 1.8.0
 */
public class DemoSquare {
    
    
    public static void main(String[] args) {
    
    
        //创建Square类实例,并传入参数
        Square sq1 = new Square(111);
        Square sq2 = new Square(222);
        Square sq3 = new Square(111);
        System.out.println("sq1与sq2是否相等: " + sq1.toString() + "\t" + sq2.toString() + "\t" + sq1.equals(sq2));
        System.out.println("sq1与sq3是否相等: " + sq1.toString() + "\t" + sq3.toString() + "\t" + sq1.equals(sq3));
    }
}

3、运行结果

在这里插入图片描述

4、总结

通过这次实验学会了如何重写equals()方法和toString()方法,重写的时候要加上@Override关键字
以及重写equals()方法时学会了如何灵活使用instanceof关键字用

猜你喜欢

转载自blog.csdn.net/qq_54388490/article/details/124633832