zoukankan      html  css  js  c++  java
  • object类

    object是比较特殊的类,是所有类的父类,当一个类被创建后没有指定继承的父类,那么默认继承object类

    例:public class person{}和public class person extends object{}是一样的

    object中常用的两个方法equals()和string()

    一、equals()方法

          在学习听课过程中对equals很不理解,尤其是重写前后的作用以及和“==”的区别

          (1)“==”的含义

                基本数据类型:byte、short、int、long、double、float、Boolean、char之间比较的是值

                引用数据类型:比较的是在内存中的存储地址,是否是指向内存中的同一个对象

         (2)equals()

                  equals方法不能比较基本数据类型,只能比较引用数据类型

                 equals的源码:      public Boolean equals(object obj){

                                                             return(this==obj);                

                                                    }

                      初始默认行为是比较数据存储地址是否相同。jdk的类中有一些类覆盖率object类中equals()方法,比较规则:如果两个对象的类型一直,并且内容一直,则返回true。这写类有:string,file,date,包装类(integer,Double等)。

    也可以自己重写:

    第一种,没有重写,比较数据的存储地址

    public class person {
       private String name;
       private int age;
     
    public person() {}
       public person(String name,int age) {
           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;
    }
    }
    测试类:

    public class test {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
           person p=new person("徐",18);
          person p1=new person("徐",18);
          boolean b=p.equals(p1);
          System.out.println(b);
        }
    }

    p和p1的地址不同,返回值为false

    第二种:equals被重写

    public class person {
       private String name;
       private int age;
     
    public person() {}
       public person(String name,int age) {
           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

    //重写的equals方法
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        person other = (person) obj;
        if (age != other.age)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }
    }

    测试类:

    public class test {

        public static void main(String[] args) {
            // TODO Auto-generated method stub
           person p=new person("徐",18);
          person p1=new person("徐",18);
          boolean b=p.equals(p1);
          System.out.println(b);
        }
    }

    对象p的name和age与对象p1的name和age的值相等,b的值为true;

  • 相关阅读:
    [转载]C# 判断字符是否中文还是英文
    [转载]C#读写配置文件(XML文件)
    [转载]C#多线程学习(一) 多线程的相关概念
    [转载]C# HashTable 遍历与排序
    [转载]C# 多选功能(checkedListBox控件)
    [转载]在C#中使用官方驱动操作MongoDB
    [转载]MongoDB开发学习(2)索引的基本操作
    公钥私钥和RSA算法
    iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库
    应用号
  • 原文地址:https://www.cnblogs.com/fbbg/p/10555805.html
Copyright © 2011-2022 走看看