java中为啥,int类型的成员变量不能调用equals方法以及hashCode方法,而String类型的成员变量可以?

比如:intyear;year.equals...........会报错Stringyear;year.equals............是对的... 比如:int year;
year.equals........... 会报错

String year;
year.equals............ 是对的
展开
 我来答
739551801
2012-08-09
知道答主
回答量:24
采纳率:0%
帮助的人:22.2万
展开全部
以下是equals方法的说明,很明显函数的参数需要时对象类型,而int属于基本类型,string则属于对象类型。其实你像int,double这种基本类型比较都是用==来判断的。
public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
equals 方法在非空对象引用上实现相等关系:
自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回 false。 望采纳
chind0502
2012-08-09 · TA获得超过275个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:79.7万
展开全部
想跟你说的是这是JAVA语言的一种规则,数值型等要用“==”,系统会直接拿这两个数在内存内进行大小比较处理,而字符串的等要用equals方法去处理,它的处理办法是,按字符串从左到右的顺序,比较每个字符的asc码值,一旦遇到不想等那就会返回false。

这样说不知道你明白没有。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
king炬
2012-08-09 · TA获得超过298个赞
知道小有建树答主
回答量:563
采纳率:0%
帮助的人:328万
展开全部
楼上说的很明确了,我想补充的是,int是基本数据类型,-没有引用指向的,
补:像String是类类型,有引用指向,所以地址不同(这就需要equals()方法判断内容一样“则相同”)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灬宛若初见
2012-08-09
知道答主
回答量:45
采纳率:0%
帮助的人:16万
展开全部
int是整型就是数值要比较要用==,而equals是给字符类型相比较用的。。。。
int year中的year是要等于一个数值的,而string year中的year是字符串,所以呢,后者可以用equals...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bd3d490
2012-08-09
知道答主
回答量:27
采纳率:0%
帮助的人:8.9万
展开全部
int是基本类型,equals是Object类型的方法 ,基本类型都没有equals方法。无法进行调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式