zoukankan      html  css  js  c++  java
  • object类

    Object类

    1.getClass()方法:获取对象的类型

    示例代码

    public class Test {
        public static void main(String[] args) {
           Me me = new Me("qiudajiang",13);
           Me me1 = new Me("qiudashuai",11);
           //判断me和me1是不是同一个类型
            Class aClass = me.getClass();
            Class bClass = me1.getClass();
            if (aClass == bClass){
                System.out.println("me和me1类型相同");
            } else {
                System.out.println("不是同一个类型");
            }
        }
    }

    2.hashCode方法:返回该对象的哈希码值(根据对象的地址或数字或字符串使用hash算法计算出来的int类型的数值,一般情况下相同对象返回相同哈希码)

    实例代码

    public class Test {
        public static void main(String[] args) {
    
           Me me = new Me("qiudajiang",13);
           Me me1 = new Me("qiudashuai",11);//hashCode()方法
            System.out.println(me.hashCode());
            System.out.println(me1.hashCode());
            Me me2 = me1;
            System.out.println(me2.hashCode());
        }
    }

    3.toString()方法:返回该对象的字符串表示

    示例代码

     System.out.println(me.toString());
     System.out.println(me1.toString());

    4.equals()方法:比较两个对象地址是否相同,该方法可重写,改变比较两个对象的内容

    实例代码

    如要实现若内容相同则返回true,重写equals()方法,代码如下:

     public boolean equals(Object obj){
            //1.判断两个对象是否是同一个引用
            if (this == obj){
                return true;
            }
            //2.判断obj是否null
            if (obj == null){
                return false;
            }
            //3.判断是否是同一个类型
    //        if (this.getClass() == obj.getClass()){
    //        }
            if (obj instanceof Me){
                //4.强制类型抓换
                Me me = (Me)obj;
                //5.比较属性
                if (this.name.equals(me.getName()) && this.age == ((Me) obj).getAge()){
                    return true;
                }
            }
            return false;
        }

    测试代码:

    public class Test {
        public static void main(String[] args) {
    
           Me me = new Me("qiudajiang",13);
           Me me1 = new Me("qiudashuai",11);
            //equals(0方法,判断两个对象地址是否相等
            System.out.println(me.equals(me1));
            Me me3 = new Me("qdj",10);
            Me me4 = new Me("qdj",10);
            System.out.println(me3.equals(me4));
        }
    }

    5.finalize()方法:当对象被判定为垃圾对象时,由JVM自动调用。

    finalize()方法重写:

      @Override
        protected void finalize() throws Throwable {
            System.out.println("对象被回收了");
        }

    测试代码:

    public class Test2 {
        public static void main(String[] args) {
    //        Me a = new Me("aaa",1);
    //        Me b = new Me("bbb",2);
    //        Me c = new Me("ccc",3);
    //        Me d = new Me("ddd",4);
    //        Me e = new Me("eee",5);
            new Me("aaa",1);
            new Me("bbb",2);
            new Me("ccc",3);
            new Me("ddd",4);
            new Me("eee",5);
            //回收垃圾
            System.gc();
            System.out.println("回收垃圾");
        }
    }
  • 相关阅读:
    面向对象反射、元类
    面向对象高级
    面向对象之封装
    抽象、继承、组合
    面向对象基础
    常用模块及其使用(二)
    常用模块及其使用
    模块及模块的使用
    drf框架之视图类、视图家族和路由组件
    drf框架群查接口的筛选组件之搜索过滤组件、排序过滤组件、分页器组件、django_filter插件
  • 原文地址:https://www.cnblogs.com/qiudajiang/p/13234756.html
Copyright © 2011-2022 走看看