旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

java中推断是不是相称的要领【JAVA教程】,java

作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:27评论:0


导读:java中的基础数据范例推断是不是相称,直接运用”==”就好了,相称返回true,不然,返回false。obj1==obj2推断是obj1,obj2这两个援用变量是不...

java中的基础数据范例推断是不是相称,直接运用”==”就好了,相称返回true,不然,返回false。

obj1==obj2 推断是obj1,obj2这两个援用变量是不是相称,即它们所指向的对象是不是为同一个对象。弦外之音就是请求两个变量所指内存地址相称的时刻,才返回true,每一个对象都有本身的一块内存,因而必需指向同一个对象才返回ture。

假如想要自定义两个对象(不是一个对象,即这两个对象离别有本身的一块内存)是不是相称的划定规矩,那末必需在对象的类定义中重写equals()要领,假如不重写equals()要领的话,默许的比较体式格局是比较两个对象是不是为同一个对象。

在Java API中,有些类重写了equals()要领,它们的比较划定规矩是:当且仅当该equals要领参数不是 null,两个变量的范例、内容都雷同,则比较效果为true。

这些类包含:String、Double、Float、Long、Integer、Short、Byte、、Boolean、BigDecimal、BigInteger等等,太多太多了,然则罕见的就这些了,细致能够检察API中类的equals()要领,就知道了。

重写equals()要领的步骤平常以下:

1、先用“==”推断是不是相称。

2、推断equals()要领的参数是不是为null,假如为null,则返回false;由于当前对象不可能为null,假如为null,则不能挪用其equals()要领,不然抛java.lang.NullPointerException非常。

3、当参数不为null,则假如两个对象的运行时类(经由过程getClass()猎取)不相称,返回false,不然继承推断。

4、推断类的成员是不是对应相称。往下就随意发挥了。

示例:

public class Dog {
    private int age;
    private String name;
    public Dog(int age,String name){
        this.age=age;
        this.name=name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public boolean equals(Object obj) {
        if(obj==null){
            return false;
        }
        if(this==obj){
            return true;
        }
        if(obj instanceof Dog){
            Dog dog=(Dog)obj;
            if(dog.age==this.age&&dog.name.equals(this.name)){
                return true;
            }else{
                return false;
            }
        }
        return false;
    }
    public static void main(String[] args){
        Dog dog1=new Dog(12,"wangcai");
        Dog dog2=new Dog(12,"wangcai");
        Dog dog3=new Dog(16,"wangcai");
        System.out.println(dog1.equals(dog2));//true
        System.out.println(dog1.equals(dog3));//false
    }}

更多java学问请关注java基础教程。

以上就是java中推断是不是相称的要领的细致内容,更多请关注ki4网别的相干文章!

标签:java


欢迎 发表评论: