哪位大神能用通俗易懂的语言解释一下这个代码,Thank s

syf7831 2016-07-16 10:43:44
boolean result = test.mName.equals(test); //比较一个字符串对象和另外一个类的对象
(这句话是什么意思?)
...全文
232 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
syf7831 2016-07-19
  • 打赏
  • 举报
回复
集合框架与泛型这一块我很迷啊
冬天豆腐 2016-07-18
  • 打赏
  • 举报
回复
一个对象的属性和它本身作比较,得出真假结果赋给result
Mcroy_Ccc 2016-07-18
  • 打赏
  • 举报
回复
直接打印一个对象,如果该对象没有重写toString()方法,打印出来的就是: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } equals也是Object类中一个方法,所有类都是Object类的子类,所以如果没有重写过equals方法: public boolean equals(Object obj) { return (this == obj); } 就是按照等值比较来比较,用一个字符串来和一个对象进行等值比较,由于String类是重写了equals方法的 public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; } 很显然返回的是false。以上是JDK的源码,建议LZ多看看JDK的源码,对JAVA SE 进行深入学习
网络咖啡 2016-07-17
  • 打赏
  • 举报
回复
比较一下对象test中的属性mName是否和test相同,然后把比较出的结果赋值给result变量
lucers 2016-07-16
  • 打赏
  • 举报
回复
比较一个字符串对象和一个类对象是否相同,返回一个boolean类型的值,赋值给result, 你这里比较的是一个类中的属性与这个类的对象做比较,比较的是一个字符串和地址值,结果应该是个false吧,
守望- 2016-07-16
  • 打赏
  • 举报
回复
public class exercise_1 { public static void main(String []args) { Test test=new Test("hello"); boolean result = test.mName.equals(test); System.out.println(result); } } class Test{ String mName; public Test(String s) { this.mName=s; } } test 是对象名,你自己编译一下直接把对象名 输出的是一串乱七八糟的东西 我自己输出的是Test@61de33 其实就是比较这个乱七八糟的东西跟 对象的属性字段mName是否相等 这段乱七八糟的东西好像是哈希码?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧