Java有什么用于equals(Object o)函数

时间:2017-04-13 05:23:46

标签: java function class

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;
    }
}
这是我的学校作业并告诉我们写一个封装电视机概念的课程,假设电视机具有以下属性:一个品牌(一个无效的字符串,默认为空)和一个价格(一个非负十进制数,默认为0)。请遵循命名约定来开发课程,包括 - 默认构造函数 - 以品牌和价格为参数的构造函数 - 存取方法和变异方法 -string方法,返回由(1)品牌(2)逗号组成的字符串,以及(3)价格(四舍五入到小数点后第二位) - 等于方法 - 无论何时提供无效值,都要打印一行错误消息" INVALID VALUE"到标准输出流。 equals(Object o)的用途是什么?

2 个答案:

答案 0 :(得分:2)

在Java中,==运算符在对象上使用时,只会通过引用检查两个对象是否相同。在您的情况下,具有相同品牌和价格的两个不同的电视对象将不等于==

equals方法的目的是为您提供一种方法,以查看两个不同的对象是否相同。在您的情况下,如果两台电视的品牌相同且价格相同,则会产生true结果。正是这个,而不是==,在许多库中用于检查是否相等。

答案 1 :(得分:0)

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

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");