java学习--equals()及其重写

/*
  String和String Buffer(在其保存)
  类String中方法equals()--进行了重写和object类中的equal();
*/
class A
{
    public int i;
    public A(int i)
    {
        this.i=i;

        }
public boolean  equals(Object obj)     //内容一样,内存不一样,返回true,重写(三重)
        {                              //obj为形参,指针,
           A aa=(A)obj;                //父类调用子类特有的成员。先写需要aa=bb(先父类指向子类对象);bb=(B)aa;
            if(this.i==aa.i)           //if(当前对象i和obj代表的i相等),obj指向了子类,obj.i属于子类中特有的成员,不能直接调用,需要强制转为本子类;
               return true;
            else
               return false;

            }
    }
public class TestEquals
{
    public static void main(String[] args)
    {
        A aa1=new A(2);
        A aa2=new A(2);

    System.out.println(aa1.equals(aa2));//比较的不是内容,不同的内存,不相等。set容器不允许放重复的元素(内容相同,内存不同,将equals重写)
        if(aa1==aa2)
          System.out.println("相等");
        else
            System.out.println("不等");

//        System.out.println(aa1);
//        System.out.println(aa2);

        }
    }
    
class TestStringEquals
{
 public static void main(String[] args)
 {
 String str1="a";                     //String的equals()中进行了重写
 String str2="a";
 System.out.println(str1.equals(str2));
 }
}

结果为true

原文地址:https://www.cnblogs.com/6530265oule/p/9360410.html

时间: 2024-11-11 07:52:33

java学习--equals()及其重写的相关文章

java学习——equals()和==的比较

equals 方法是 java.lang.Object 类的方法. 下面从两个方面来说明equals()和==的差别:(1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同. “==”比较两个变量本身的值,即两个对象在内存中的首地址. “equals()”比较字符串中所包含的内容是否相同. [例子] String s1,s2,s3 = "abc", s4 ="abc" ; s1 = new String("abc&qu

java学习-- equals和hashCode的关系

[JAVA编程]equals相等hashcode必然相等,反之不然 2018年03月28日 10:35:47 天路漫漫 阅读数:1786更多 个人分类: [JAVA] 1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠. 2.hashCode()相等的两个对象他们的equal()不一定相等,就是hashCode()不是绝对可靠. hashCode是对象在内存地址通过hash算法得到的哈希码: 比较两个对象是否相等: 1.首先比较hashcod

java学习中,object 对象的使用(toString、equals、hashCode)(java 学习中的小记录)

java学习中,object 对象的使用(java 学习中的小记录)作者:王可利(Star·星星) object 对象(参考API学习) 重点掌握三个方法: 1.toString 返回该对象的字符串表示. 2.equals(object obj)指示其他某个对象是否与这个对象相等. 3.hashCode() 返回对象的哈希码. 详见代码的注释分析(一个是Person类重写方法,一个是Star类使用方法) Star类代码: 1 package study; 2 3 public class sta

java学习中,面向对象的三大特性:封装、继承、多态 以及 super关键字和方法的重写(java 学习中的小记录)

java学习中,面向对象的三大特性:封装.继承.多态 以及 super关键字和方法的重写(java 学习中的小记录) 作者:王可利(Star·星星) 封装     权限修饰符:public 公共的,private 私有的     封装的步骤:          1.使用private 修饰需要封装的成员变量.          2.提供一个公开的方法设置或者访问私有的属性              设置 通过set方法,命名格式:     set属性名();  属性的首字母要大写 访问 通过ge

java基础中的 equals关键字 重写

equals (public boolean equals(Object obj)) 指示其他某个对象是否与此对象"相等". equals 方法在非空对象引用上实现相等关系: 自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true. 对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true. 传递性:对于任何非空引用值 x.y 和 z,如果 x.equals(y) 返回 true,并且

Java 学习笔记(2015.7.13~17)

Java 学习笔记(2015.7.13~17) Java this关键字 表示本类中的属性,调用本类中的方法 class Person {        private String name;         private int age;         public Person(String name, int age) {         this.name = name;//调用本类中的属性         this.age = age;//同上} //get&set方法:    

Java学习笔记<3>面向对象相关

面向对象的基本思想 从现实世界客观存在的事务出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式,如抽象.分类 继承.聚合.多态等. 类和对象的关系 对象中存储了类规定的数据类型,并且对象可以调用类的方法. java面向对象 <1>对象是java程序的核心,一切皆对象. <2>对象可以看成静态属性(成员变量)和动态属性(方法)的封装体. <3>类是创新同一类型对象的模版,定义了该类型对象应具有的成员变量及方法. 类的定义 成员变量可以用java语言的任何一种

Java学习笔记(2015.7.27~7.31)

Java学习笔记(2015.7.27~7.31) Java 课堂 Java学习笔记(2015.7.27~7.31) 小技巧 常用方法 1.List另一个子类--LinkedList 2.数组的常用方法 3.排序 1.二分法查找 2.数组转换为List 3.可变参数Type ... param (了解) 1.容器Collection 2.自动拆装箱(了解) 3.JDK增强for循环(了解) 4.泛型(掌握) 5.iterator与for在迭代中的区别 1.概念:保存多个对象的对象. 2.JDk为什

Java学习之Xml系列五:SAX解析——搜索xml内容

本文对SAX解析进一步说明. 另外主要给利用SAX解析方法找到指定条件(如标签名称)的xml文档内容. 首先按需要介绍一下DefaultHandler. DefaultHandler类是SAX2事件处理程序的默认基类.它继承了EntityResolver.DTDHandler.ContentHandler和ErrorHandler这四个接口.包含这四个接口的所有方法,所以我们在编写事件处理程序时,可以不用直接实现这四个接口,而继承该类,然后重写我们需要的方法.(注意:ContentHandler