/*
描述图书:book
作者,书名,价格。
行为:6个set get
建立book比较相同的依据。只要书名相同就视为同一本书。 字符串判断相同:请查api文档。equals方法,String类重写Object类中的equals
建立book对象的字符串表现形式。 Book[作者:+ 书名 + 价格]
*/
class Book extends Object{
//属性
private String author;
private String name;
private double price;
//六个方法
void setAuthor(String author){
this.author=author;
}
String getAuthor(){
return this.author;
}
void setName(String name){
this.name =name;
}
String getName(){
return this.name;
}
void setPrice(double price){
this.price=price ;
}
double getPrice(){
return this.price;
}
//重写equals方法.
public boolean equals(Object obj){//object类型的参数
//如果调用该方法的对象和传入该方法的对象是同一个则返回true;
if (this==obj)
return true;
//比较子类中的方法,应向下转型
if (!(obj instanceof Book))
return false;
throw new ClassCastException("数据类型错误,请改正");
Book book=(Book)obj;
return this.name==book.name;
}
}
class objectTest{
public static void main(String[]args){
Book k1=new Book();
k1.setName("古龙");
k1.getName();
Book k2=new Book();
k2.setName("天涯明月刀");
k2.getName();
System.out.println(k1.equals(k2));
}
}
4 回答
Goozy
TA贡献6条经验 获得超4个赞
你那个不是向下转型的问题。我在eclipse看过,你那个方法在第一个if就退出了方法,下面的代码就不会执行了,eclipse报错是unreachable code:不会执行的代码。你把向下转型放在第一个if前面就没有报错。 还有所有类如果没有说明继承那个父类,默认是继承Object。
添加回答
举报
0/150
提交
取消