Object_equals 方法
Posted yu-zhi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object_equals 方法相关的知识,希望对你有一定的参考价值。
一 Object 中equals:
格式: public boolean equals(Object obj)
equals 是比较两个对象是否相等,实际是比较两个对象的内存地址值是否相等,如果相等方法true,否则false
二 String 中equals:
重写了Object中equals 是用来比较两个字符串是否相等
目的是给对象成员比较
三 ==
基本数据类型比较:
基本数据类型比较只能用==
引用数据类型比较:
用于比较两个对象是否相等,实际上是比较两个对象内存地址是否相等
/* String equals 重写Object 中的方法; */ package cn.itcast_03; public class Student3 { private String name; private int age; public Student3() { super(); } public Student3(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } // @Override /* public boolean equals(Object obj){ //为了提高代码效率 if(this == obj){ return true; } if(obj == null){ return false; } if(getClass() != obj.getClass()){ return false; } if( ) } */ @Override /* String 类型比较, 得用String 类中而equals();比较的是字符串值是否相等 比较成员变量 String equals 是重写Object 中方法 */ /* public boolean equals(Objcet obj){ Student3 s = (Student3)obj;//使用学生类特有的成员变量, 因此需要向下转型 if(this.name.equals(s.name) && (this.age == s.age)){ return true; }else{ return false; } //上面可以写成这样 // return this.name.equals(s.name) && this.age == s.age; } */ //优化本 public boolean equals(Objcet obj){ //提高效率,同一个对象就不用比较 if(obj == this){ return true; } //判断是否是obj 是否是学生类,用 instanceof 判断 if(!(obj instanceof Student3)){ return false; }
//强制类型转化
Student3 s = (Student3) object; return this.name.equals(s.name) && this.age == s.age; } }
/* equals: Object 中 equals(); public boolean equals(Object obj){ return obj == this; } Object 中 equals 比较两个对象的地址值 重写: equals 重写一般比较是成员变量, 而且可以自动生成. == hao: 基本数据类型的比较 引用数据类型的同一个类中对象的比较,对象的地址值 不同类对象比较会报错 */ package cn.itcast_03; public class StudentDemo1 { public static void main(String[] argws){ Student3 s1 = new Student3("林青霞", 30); Student3 s2 = new Student3("林青霞", 30); System.out.println(s2 == s1);//false Student3 s3 = s1; System.out.println(s3 == s1);//true System.out.println("---------------------"); System.out.println(s1.equals(s2));//false System.out.println(s1.equals(s3));//true } }
以上是关于Object_equals 方法的主要内容,如果未能解决你的问题,请参考以下文章