equals()方法和'=='操作符用于原始数据类型和类数据类型

equals()方法和'=='操作符用于原始数据类型和类数据类型

问题描述:

我已经知道equals()方法(或与此类似的任何其他类型)比较给定类型的值与==运算符比较if在表达式中声明两个引用是一样的,但是两个对象的每场同一类比较时,我有一个问题,代码如下:equals()方法和'=='操作符用于原始数据类型和类数据类型

//fields are String name, String surname, int age and boolean gender belonging to the Person class. 
public boolean isYou(Person person) 
{ 
    return 
    getName().compareToIgnoreCase(person.getName()) == 0 && 
    getSurname().compareToIgnoreCase(person.getSurname()) == 0 && 
    getAge() == person.getAge() && 
    getGender() == person.getGender(); 

在考虑到这种实现,是正确的状态,这是必须使用方法来比较类数据类型(如字符串),并可能在处理原始数据类型时使用==运算符,即使对象比较完成而不是像getAge() == 2这样的简单比较?

+2

'person.getAge()'不是一个对象 - 它的类型是'int',这使得它成为一个基元。运算符应用于表达式的类型,而不是基于组成表达式的任何组件。 – chrylis

是它正确地指出,是强制使用的方法来比较类数据类型(如String)

是。

,这是可能的基本数据类型

是处理时使用==操作符。

即使完成对象比较而不是像getAge()== 2这样的简单比较吗?

不,这样说是不正确的。原始类型不是对象,因此没有equals()方法可供调用,所以您唯一的选择是通过==来比较值,并且在基本类型的情况下总是会产生所需的结果。

这是绝对正确的,处理原始类型如int double byte char等等,您必须使用==比较它们,因为它们不是对象,所以它们不实现equals()。所以澄清说,剩下的就是确定