zoukankan      html  css  js  c++  java
  • 别样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是不是也被抽象了。那么随便定义一个类是不是

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

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


  • 相关阅读:
    request.getParameter() 、 request.getInputStream()和request.getReader() 使用体会
    HTTP之Content-Length
    关于spring3中No Session found for current thread!and Transaction的配置和管理(转)
    Java数据类型和MySql数据类型对应一览
    Spring MVC 解读——View,ViewResolver(转)
    LeetCode 441. Arranging Coins
    LeetCode 415. Add Strings
    LeetCode 400. Nth Digit
    LeetCode 367. Valid Perfect Square
    LeetCode 326. Power of Three
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7222252.html
Copyright © 2011-2022 走看看