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