首页 > 其他 > 详细

Object_equals 方法

时间:2018-08-23 01:31:39      阅读:204      评论:0      收藏:0      [点我收藏+]

一 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 方法

原文:https://www.cnblogs.com/yu-zhi/p/9521295.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!