新手编译不过去,是书上的答案

reanimation1 2007-08-25 02:31:08
有一个equals()重写的问题

书上给的答案是这样的,可小弟就是编译不出来,麻烦各位看一下


class Movie
{
int year;
String name;
public boolean equals (Object obj)
{
if (obj instanceof Movie)
{
{ Movie m=(Movie)obj;}

if (name.equals(m.name)&&year==m.year))
{
return true;
}
}

return false;

}
}
...全文
224 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuoxie007 2007-11-04
  • 打赏
  • 举报
回复
楼上各位说的都很好
我就只有在此顶一下了哦
还有哦 楼主啊 写程序一定要细心,一些拼写和格式错误可要尽量避免啊
熟能生巧 要多练啊
Advance_bravely 2007-11-04
  • 打赏
  • 举报
回复
下个教学视频把基础打好:http://www.abab123.com/bbs/down.asp?html=729332
cag20 2007-11-03
  • 打赏
  • 举报
回复
class Movie
{
int year;
String name;
public boolean equals(Object obj)
{
private Movie m;
if(obj instanceof Movie)
{
Movie m=(Movie)obj;
}

if(name.equals(m.name)&&year==m.year)
{
return true;
}
return false;

}
}
Lenic__ 2007-08-25
  • 打赏
  • 举报
回复
楼上都说了,括号配对问题。
太乱了,格式化一下就能看出来了。
dddpp 2007-08-25
  • 打赏
  • 举报
回复
class Movie {
int year;

String name;

public boolean equals(Object obj) {
if (obj instanceof Movie) {

Movie m = (Movie) obj;

if (name.equals(m.name) && year == m.year) {
return true;
}
}

return false;

}
}
wangkm 2007-08-25
  • 打赏
  • 举报
回复
楼上们说的都差不多了。。。
zephyr_cc 2007-08-25
  • 打赏
  • 举报
回复
ls,
两个if嵌套关系, 不是并列关系...
xkarvy 2007-08-25
  • 打赏
  • 举报
回复
1:if (obj instanceof Movie) 意思:如果传来的Object 是Movie类型 (虽然Movie是你定义的一个类,但这也是一个数据类型)

2: { Movie m=(Movie)obj;} 前边的花括号去掉!!
3:if (name.equals(m.name)&&year==m.year)) 是name的值如果和传来的name相同并且year和传来的year相同就 return true;

你的代码改写为:
class Movie
{
int year;
String name;
public boolean equals (Object obj)
{
private Movie m;//这个要定义在if外边 ,要不下边的if就调用不到
if (obj instanceof Movie){
m=(Movie)obj;
}

if (name.equals(m.name)&&year==m.year)){
return true;
}
return false;
}
}


zephyr_cc 2007-08-25
  • 打赏
  • 举报
回复
1. { Movie m=(Movie)obj;}
花括号去掉
2. if (name.equals(m.name)&&year==m.year))
后面多了个小括号

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧