public boolean equals(Object anObject) {
//比较地址 如果地址相同证明两个变量相同
if (this == anObject) {
return true;
}
//比较入参是否为String类型 不是的话return fasle
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
//比较两个字符串的字符长度 不相等的话 return false
if (n == anotherString.value.length) {
//获取两个变量的字符数组 循环从第一位开始比较 如果遇到不同 返回false
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
//以上都通过 返回 true
return true;
}
}
return false;
}
1.第一步比较地址 如果地址相同证明两个变量相同;
2.第二部比较入参是否为String类型 不是的话return fasle;
3.第三部比较两个字符串的字符长度 不相等的话 return false;
4.第四部获取两个变量的字符数组 循环从第一位开始比较 如果遇到相同 返回false;
5.第五步以上都通过 返回 true;