黑马程序员技术交流社区
标题:
求解:小问题?
[打印本页]
作者:
刘经鹏
时间:
2012-12-28 09:32
标题:
求解:小问题?
本帖最后由 刘经鹏 于 2012-12-29 09:58 编辑
package cn.itcast.day1;
import java.util.Date;
public class ReflectPoint {
private Date birthday = new Date();
private int x;
public int y;
public String str1 = "ball";
public String str2 = "basketball";
public String str3 = "itcast";
public ReflectPoint(int x, int y) {
super();
this.x = x;
this.y = y;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + x;
result = prime * result + y;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final ReflectPoint other = (ReflectPoint) obj;
if (x != other.x)
return false;
if (y != other.y)
return false;
return true;
}
@Override
//为什么要加上 @Override,还有已经是String类型为什么还要定义toString方法啊?
public String toString(){
return str1 + ":" + str2 + ":" + str3;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
求解:红色字体部分。
作者:
王玮
时间:
2012-12-28 10:33
toString
public String toString()返回此对象本身(它已经是一个字符串!)。
返回:
字符串本身。
如果想要输出 自己想要的结果就必须重写toString() 方法.
作者:
冉世友
时间:
2012-12-28 11:14
因为上帝Object里的toString方法返回的是对象本身的字符串表现形式,
所以如果要定义自己的字符串表现形式就要重写toString方法。
作者:
王少雷
时间:
2012-12-28 11:21
不一定要重写,有自己的需要才重写。
为什么重写先弄明白它们的用途,equals是为了比较是否相等。
比如你有两个User,现在某个软件的要求是只要它们id属性相同就是相等的,那就可以重写eqauls,只对id进行对比。
toString是为了让你更容易看懂一个对象,当对象在控制台打印出来时你想看到一堆无意义的代码吗?那就是调用默认的toString的结果。你可以重写自己想要的输出,看到对象的每个属性。
hashCode是hash集合中用来对比是否相等的根据,是一个根据对象内容算出来的数值,对比起来比equals快得多。更具体的解释你自己百度搜吧,很多东西要深入认识也不是几句话就能说明白的。
作者:
冯伟超
时间:
2012-12-28 11:29
@Override 这是注解的中的一个,jdk1.5的新特性,它是为了开发者在重新父类中的方法,避免错误,而规范的一种方式,告诉开发工具一些信息!如果你覆写父类的方法正确,你也可以不用写这些东西,它其实就是一种标记,除了防止你的书写错误,没有其他的什么用途!
作者:
李文龙
时间:
2012-12-28 12:19
@Override 注解,表示重写,就好比目录说明一样,告诉后面的开发者这是重写的一个父类方法。
String类中有toString方法,用于返回字符串,但当返回结果的格式不是你所期望的时候,你可以重写toString方法,定义自己的返回值。
作者:
清水
时间:
2012-12-28 13:59
老师举的例子不是特别好,给人感觉多此一举的感觉。
只要知道,通过反射,可以知道一个类里的所有方法、成员变量、构造函数就够了。
虽然源代码看不到,可以试出功能来。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2