java中为啥,int类型的成员变量不能调用equals方法以及hashCode方法,而String类型的成员变量可以?
比如:intyear;year.equals...........会报错Stringyear;year.equals............是对的...
比如:int year;
year.equals........... 会报错
String year;
year.equals............ 是对的 展开
year.equals........... 会报错
String year;
year.equals............ 是对的 展开
6个回答
展开全部
以下是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。 望采纳
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。 望采纳
展开全部
想跟你说的是这是JAVA语言的一种规则,数值型等要用“==”,系统会直接拿这两个数在内存内进行大小比较处理,而字符串的等要用equals方法去处理,它的处理办法是,按字符串从左到右的顺序,比较每个字符的asc码值,一旦遇到不想等那就会返回false。
这样说不知道你明白没有。
这样说不知道你明白没有。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说的很明确了,我想补充的是,int是基本数据类型,-没有引用指向的,
补:像String是类类型,有引用指向,所以地址不同(这就需要equals()方法判断内容一样“则相同”)
补:像String是类类型,有引用指向,所以地址不同(这就需要equals()方法判断内容一样“则相同”)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int是整型就是数值要比较要用==,而equals是给字符类型相比较用的。。。。
int year中的year是要等于一个数值的,而string year中的year是字符串,所以呢,后者可以用equals...
int year中的year是要等于一个数值的,而string year中的year是字符串,所以呢,后者可以用equals...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int是基本类型,equals是Object类型的方法 ,基本类型都没有equals方法。无法进行调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询