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)的用途是什么?
答案 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");