为什么clone和equals方法要重写 初学java,对java.lang.Object中的clone和equals方法不是很理解,为什么要重写?对其前因后果不了解,很难消化。请大家帮帮我,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是,没错,不一定要重写。当Object类的clone方法不满足你的用处时,也就是说Object的clone方法是浅复制,当你要进行深度复制的时候 你要重写clone方法equals方法重写的时候 需要重写hashcode方法。当你自定义一个类的时候,有可能要重写以上两种方法 补充一点 当你的对象里的变量是基础类型的时候 clone方法是安全的 反之如果不是基础类型 那么clone之后这些非基础类型的变量指向同一块内存地址 JDK 文档里倒是没说一定要,应该根据你实际的逻辑看着办,做到应用里全局统一就可以了:-) 恩,对象里的引用在 clone 的时候一定要注意。 具体怎么重写??????clone()是个protected 权限啊? 重写成public就好了即便是浅拷贝,也推荐写成public 然后直接return super.clone() OVER 如何完成transient反序列化呢? system.out.println到windows命令行,如何设置颜色? delphi 与java通信 ireport针打不正常及如何精确控制纸长? 请教在JSP文件中加入JApplet的方法(在JApplet中可能带有Swing组件) 在循环中生成的随机字符串每次都是一样的,为什么? java反射机制的一个问题 AWT比Swing有什么缺点? POI导出word文档换行问题 谁能提供在载Eclipse的准确地址 Java 用awt包 中如何设置Button 大小? 用代码找罪犯(算法题)
当Object类的clone方法不满足你的用处时,也就是说Object的clone方法是浅复制,当你要进行深度复制的时候 你要重写clone方法equals方法重写的时候 需要重写hashcode方法。
当你自定义一个类的时候,有可能要重写以上两种方法
补充一点 当你的对象里的变量是基础类型的时候 clone方法是安全的 反之如果不是基础类型 那么clone之后这些非基础类型的变量指向同一块内存地址
??????
clone()是个protected 权限啊?
即便是浅拷贝,也推荐写成public 然后直接return super.clone() OVER