Java equals(objecto)函数的用途是什么

Java equals(objecto)函数的用途是什么,java,function,class,Java,Function,Class,这是我的学校作业,让我们编写一个封装电视机概念的课程,假设电视机具有以下属性:品牌(可空字符串,默认为空)和价格(非负小数,默认为0)。请遵循命名约定来开发该类,包括 -默认构造函数 -以品牌和价格为参数的构造器 -访问器方法和mutator方法 -toString方法,返回一个由以下内容组成的字符串:(1)品牌(2)逗号,(3)价格(四舍五入到小数点后第2位) -相等法 -每当提供无效值时,在标准输出流中打印一行错误消息“invalid value”。 equals(Object o)的用法是

这是我的学校作业,让我们编写一个封装电视机概念的课程,假设电视机具有以下属性:品牌(可空字符串,默认为空)和价格(非负小数,默认为0)。请遵循命名约定来开发该类,包括 -默认构造函数 -以品牌和价格为参数的构造器 -访问器方法和mutator方法 -toString方法,返回一个由以下内容组成的字符串:(1)品牌(2)逗号,(3)价格(四舍五入到小数点后第2位) -相等法 -每当提供无效值时,在标准输出流中打印一行错误消息“invalid value”。
equals(Object o)的用法是什么?

在Java中,当在对象上使用
=
操作符时,只会检查两个对象在引用时是否相同。在您的情况下,两个具有相同品牌和价格的不同电视对象在
==
之前不会相等

equals
方法的要点是让您可以查看两个不同的对象是否等效。在您的情况下,如果两台电视机的品牌和价格相同,则会产生
true
结果。在许多库中,用于检查相等性的不是
==

方法
.equals()
在非空对象引用上实现等价关系(下面的示例)。见文章

public class TVSet {
private String brand;
private double price;
public TVSet()
{
    brand = "";
    price = 0.0;
}
public String getbrand()
{
    return this.brand;
}
public double getprice()
{
    return this.price;
}
public void setbrand(String brand)
{
    if(brand!=null)
    {
        this.brand = brand;
    }
    else
    {
        System.out.println("INVAILD VALUE");
    }
}
public void setprice(double price)
{
    if(price>=0)
    {
        this.price = price;
    }
    else
    {
        System.out.println("INVALID VALUE");
    }
}
public void TVSet(String brand, double price)
{
    if(brand!=null)
    {
        this.brand= brand;
    }
    else
    {
        System.out.println("INVALID VALUE");
    }
    if(price>=0.0)
    {
        this.price = price;
    }
    else
    {
        System.out.println("INVALID VALUE");
    }
}
    @Override
    public String toString()
    {
        //double temp = this.getprice();
        //DecimalFormat f = new DecimalFormat("##,00");
        //String price2 = f.format(temp);
        return String.format("%s, %.2f", brand, price);
    }
    @Override
    public boolean equals(Object o)
    {
        if(o instanceof TVSet)
        {
        TVSet t =(TVSet)o;
        if(price == t.price && brand == t.brand)
        return true;
        }
        return false;
    }
}

默认构造函数仅在类不提供构造函数时存在。如果它提供任何构造函数,即使是无参数构造函数,也不是默认构造函数。您没有遵循方法
TVSet
的命名约定,实际上也没有遵循任何非重写方法。顾名思义,如果两个对象被视为相等,它将返回
true
。请检查此项。此示例与您的代码无关。这是一个随机的简单示例,帮助您理解
.equals()
=
的用法
String h = "hello";
Scanner input = new Scanner(System.in);
String x = input.next();
if (h.equals(x)) { //do NOT use ==; this is not used for comparing strings 
System.out.println("h equals x");