• 别样JAVA学习(五)继承上(1.1)Object类toString()


    接下来说完equals以后,我们学习接下来的toString(),

    Java又觉得全部对象不光具有比較性,

    还能使对象变成字符串被打印。

    出现



    曾经前面显示的是数组。如今显示的是这个对象所属的类。

    紧跟着是这个对象的哈希值,也就是全部的对象都有哈希值(内存地址)。

    接下来。改动ObjectDemoToString class类

    class ObjectDemoToString
    {
    	public static void main(String[] args)
    	{
    		Demo d1=new Demo(4);
    		System.out.println(Integer.toHexString(d1.hashCode()));//哈希值转化成16进制
    		System.out.println(d1.toString());//将d1对象地址打印出来
    	 }
    }
    
    一个对象的建立是不是要依赖于类文件?对不正确。

    以前讲过进内存的时候类文件是不是被封装成对象了。

    类文件中面既有构造函数,又有一般方法,以及成员变量。

    要想获得当中一项东西的话,你是不是封装成对象之后。

    在这对象里面定义非常多功能,是不是调用非常方便。

    怎么拿构造函数是不是对象最清楚!对不正确。


    所以呢这些对象都是依赖于class文件创建的,

    class文件已被封装对象,这个对象怎么表示呢。看以下

    class ObjectDemoToString
    {
    	public static void main(String[] args)
    	{
    		Demo d1=new Demo(4);
                    Class c=d1.getClass();//获取对象d1的类
    		System.out.println(c);
    		System.out.println(Integer.toHexString(d1.hashCode()));
    		System.out.println(d1.toString());
    	}
    }
    

    结果:


    这些class文件都有名称,构造函数,

    getMethods()能够从.class文件里拿到全部的定义方法

    甚至定义的私有方法都能拿得到,

    你不用给我源文件都知道。这个称为反编译。


    class ObjectDemo
    {
    	public static void main(String[] args)
    	{
    		Demo d1=new Demo(4);
    		Class c=d1.getClass();
    		System.out.println(c.getName()+'@'+Integer.toHexString(d1.hashCode()));
    		System.out.println(Integer.toHexString(d1.hashCode()));
    		System.out.println(d1.toString());
    	}
    }
    
    toString()=getClass().getName()+'@'+Integer.toHexString(d1.hashCode())

    接下来。这个地址有意义么,假设想要对象相应的字符串有意义怎么做?


    在Demo()中覆写

    	public String toString()
    	{
    		return "demo:"+num;
    	}
    

    创建自己的字符串表示形式。父类默认的一般没多大意义,一般都覆写

    写类描写叙述的时候这些方法都有可能被覆写,那么这时候产生问题。

    假设都覆写。干脆把它抽象不就完了?

    抽象完了以后object是不是也被抽象了。那么随便定义一个类是不是

    都会强迫你去定义里面包括的方法,这是不是非常麻烦。

    况且大家有听说过上帝有抽象的么?上帝不是总是活在子民心中的么~


  • 相关阅读:
    【JBPM4】创建流程实例
    【JBPM4】流程部署
    Table上下滚动
    oracle 导入dmp文件
    Win7下安装Oracle 10g
    【Hibernate3.3复习知识点二】
    通过IP地址和子网掩码计算主机数
    vue.js知识总结
    vue生产环境部署总结
    移动端上遇到的各种坑与相对解决方案
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7222252.html
Copyright © 2020-2023  润新知