public boolean equals(Object anObject) { //比较是不是同一个对象,这里是==比较,比较的是地址,地址相同则是相同 //this这里指代的是当前调用对象,就是谁调用的equals方法,这里的this指的就是谁 if (this == anObject) { return true; } //instanceof判断anObject是不是String的子类 if (anObject instanceof String) { //此处转为String类型,便于下面把每个字符取出来进行比较 String anotherString = (String) anObject; //value是String类自身的属性,length没有翻到到底是哪里定义的属性,反正n就是指代一个int类型的对象(你调用equals方法的那个对象)的长度 int n = value.length; //判断长度是否相同,不相同肯定肯定是false了 if (n == anotherString.value.length) { //自身属性的引用,String类本身定义的 char v1[] = value; //相当于String转数组 char v2[] = anotherString.value; int i = 0; //遍历拿出每一个字符进行比较,每个字符按顺序取出,都相同则true while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
equals源码分析
猜你喜欢
转载自blog.csdn.net/wanwan2018/article/details/81411434
今日推荐
周排行