equals复写

问题描述

publicbooleanequals(objecto){if(this==o)returnture;if(!oinstanceofMonkey)returnture;finalMonkeyother=(Monkey)o;if(this.name.equals(other.name)//1为什么这里other可以直接访问name属性(name已封装)returnture;elsereturnfalse;}Monkeym1=newMonkey();Monkeym2=newMonkey();

解决方案

解决方案二:
在当前类中是可以访问私有属性的。
解决方案三:
[code=java]if(!oinstanceofMonkey)returnture;[/code]这么写法是不是有问题?这样?if(objinstanceofMonkey){returnname.equals(o.name);}returnfalse;

解决方案四:
如果不熟悉equals,hashCode,直接使用IDE自带生成这两个方法吧...

时间: 2024-08-22 14:07:24

equals复写的相关文章

java equals 方法的重载和复写

问题描述 java equals 方法的重载和复写 public class Person { private String name; public Person(String name){ this.name = name; } public String getName() { return name; } public boolean equals(Object other) { Person person = (Person)other; System.out.println("执行复

java基础-学到java集合框架中对那个复写equals的疑问,求解答

问题描述 学到java集合框架中对那个复写equals的疑问,求解答 import java.util.*; class Student implements Comparable { private String name; private int age; Student(String name,int age) { this.name = name; this.age = age; } public int compareTo(Student s) { int num = new Inte

java equals 的重载与复写

问题描述 public class Person { private String name; public Person(String name){ this.name = name; } public String getName() { return name; } public boolean equals(Object other) { Person person = (Person)other; System.out.println("执行复写方法");return thi

[Java] equals与==的区别

版权声明:请尊重个人劳动成果,转载注明出处,谢谢! == 是一个运算符.  equals则是string对象的方法. Java中 值类型 是存储在内存中的栈中.  而引用类型在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中.所以字符串的内容相同,引用地址不一定相同,有可能创建了多个对象. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同. equals将此字符串与指定的对象比较.当且仅当该参数不为 null,并且是与此对象

equals和hashCode源码解析

equals和hashCode网上也有很多的资料.这里只是记录下我目前的理解与认识.  大家会经常听到这样的话,当你重写equals方法时,尽量要重写hashCode方法,有些人却并不知道为什么要这样,待会就会给出源码说明这个原因.  首先来介绍下Object的equals和hashCode方法.如下:  ? 1 2 3 4 public native int hashCode(); public boolean equals(Object obj) {         return (this

Java语法----Java中equals和==的区别

[正文] 平时在学Android和Java语言的时候,总是碰到"equals"和"=="这两个字符,老感觉差不多:其实还是有一些区别的,今天干脆把它们彻底弄清楚. 一.java当中的数据类型和"=="的含义: 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean.他们之间的比较,应用双等号(==),比较的是他们的值. 引用数据类型:当他们用(==)进行比较的时候,比较的是他

JAVA之旅(九)——Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类

JAVA之旅(九)--Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类 天天被一些琐事骚扰,学习还得继续 一.Object类 Object是什么呢?我们可以翻阅JAVA API文档看他的介绍 上面介绍说,object是类层次结构的根类,也就是超类 Object:是所有对象的直接后者间继承关系,传说中的老祖宗,你父亲还有父亲,你父亲的父亲还有父亲是爷爷,这是继承关系,但是你的祖宗却只有一位,该类中定义的肯定是所有对象都具备的功能

==和equals是很有区别的

区别 ==是判断两个变量或实例是不是指向同一个内存空间equals是判断两个变量或实例所指向的内存空间的值是不是相同

Java String 的 equals() 方法可能的优化

优化 JDK1.4, 1.5 的 String Class 代码如下 以下内容为程序代码 public final class String     implements java.io.Serializable, Comparable<String>, CharSequence {     /** The value is used for character storage. */     private final char value[];           /** The offs