别样JAVA学习(五)继承上(1.1)Object类toString()
来源:互联网 发布:cpld仿真软件 编辑:程序博客网 时间:2024/05/11 19:37
接下来说完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是不是也被抽象了。那么随便定义一个类是不是
都会强迫你去定义里面包含的方法,这是不是很麻烦。
况且大家有听说过上帝有抽象的么?上帝不是总是活在子民心中的么~
0 0
- 别样JAVA学习(五)继承上(1.1)Object类toString()
- 别样JAVA学习(五)继承上(1.0)Object类equals()
- 别样JAVA学习(五)继承上(0.0)继承概述
- 别样JAVA学习(五)继承上(0.2)接口
- 别样JAVA学习(五)继承上(0.3)多态
- 别样JAVA学习(五)继承上(0.1)抽象类和模板方法模式
- 别样JAVA学习(六)继承下(2.2)异常上
- Java学习笔记五:Object类,equals ==,toString
- 别样JAVA学习(七)多线程上
- 别样JAVA学习(八)String上
- 别样JAVA学习(六)继承下(2.0)内部类上
- 别样JAVA学习(六)继承下(2.3)异常下
- 别样JAVA学习(六)继承下(3.0)包package
- JAVA Object类 toString()
- 别样JAVA学习(六)继承下(2.1)内部类下
- 多态Object类toString方法学习笔记ObjectDemo.java
- java学习日记_53:Object类的toString()方法
- 别样JAVA学习(一)基础知识
- Xcode cannot run using the selected device
- python核心编程第七章7.3 - 7.9 答案
- linux环境变量
- iOS开发之键盘类型UIKeyboardType
- JS弹出框中文乱码问题
- 别样JAVA学习(五)继承上(1.1)Object类toString()
- Gesture Recognizers与触摸事件分发
- 【LeetCode】Length of Last Word
- ubuntu安装后的一些配置问题
- C#基础概念
- IOS IAP支付总结
- n个元素入栈顺序一定时,出栈顺序的可能性数量
- Xfire+WebService “Discarding unexpected response: HTTP/1.1 100 Continue”错误解决
- C++ Sleep Function 用法 Sleep(-1)