接下来说完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是不是也被抽象了。那么随便定义一个类是不是

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

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

别样JAVA学习(五)继承上(1.1)Object类toString()的更多相关文章

  1. 别样JAVA学习(五)继承上(1.0)Object类equals()

    上一节继承下(一)我们进行抽象类.接口以及多态的学习. 接下来大家我们讲点特殊的东西就是object类, 我们一直在说继承,子继承了父,父还有没有父类呢, 为什么这么思考,大家想构造函数的第一行是不是 ...

  2. Java 面向对象概述原理: 多态、Object类,转型(8)

    Java 面向对象概述原理: 多态.Object类,转型(8) http://docs.oracle.com/javase/tutorial/java/IandI/override.html Java ...

  3. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...

  4. Java学习笔记--继承和多态(上)

    1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...

  5. Java学习笔记---继承和super的用法

    自从换了个视频教学,感觉比原来那个好多了,就是学校网速太渣,好多视频看一会卡半天,只能先看看已经下载的了. 不过也好,虽然不能从开始开始重新开,但是已经看过一次,在看一次也是好的,就当巩固学习了. 继 ...

  6. Java学习笔记--继承和多态(中)

    1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...

  7. Java学习笔记--继承和多态(下)

    1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...

  8. java学习记录笔记--继承,super,Object类

    继承: Java中的继承是单继承的. 1.子类拥有父类的全部属性和方法. 可是属性和方法的修饰符不能使private. 2.能够复用父类的代码. 方法的重写须要满足的条件: a.返回值类型 b.方法名 ...

  9. Java学习笔记31(IO:Properties类)

    Properties类,表示一个持久的j集,可以存在流中,或者从流中加载 是Hashtable的子类 map集合的方法都能用 用途之一:在开发项目中,我们最后交给客户的是一个编译过的class文件,客 ...

随机推荐

  1. 【转载】logistic回归

    原文地址:https://www.cnblogs.com/zichun-zeng/p/3824745.html 1. logistic回归与一般线性回归模型的区别: (1)     线性回归的结果变量 ...

  2. Spring配置文件中使用ref local与ref bean的区别

    Spring配置文件中使用ref local与ref bean的区别.在ApplicationResources.properties文件中,使用<ref bean>与<ref lo ...

  3. POJ——2236Wireless Network(暴力并查集)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 22107   Accepted: 928 ...

  4. [BZOJ4260] Codechef REBXOR (01字典树,异或前缀和)

    Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,-,AN. Output 输出一行包含给定表达式可能的最大值. Sample ...

  5. java面试题之你了解守护线程吗?它和非守护线程有什么区别

    程序运行完毕,jvm会等待非守护线程完成后关闭,但是jvm不会等待守护线程. 守护线程最典型的的例子是:GC线程

  6. Linux System Programming 学习笔记(三) 标准缓冲I/O

    1. partial block operations are inefficient. The operating system has to “fix up” your I/O by ensuri ...

  7. javaweb学习总结(十四)——JSP原理(转)

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  8. SharePoint 2013 App 开发—SharePoint Hosted方式,

    这篇文章会依据简单的Demo,介绍一下SharePoint Hosted 方式开发App 的步骤和说明. 这种方式的环境相比较Office 365 要麻烦一些,如果不可以连接到Internet 或者还 ...

  9. canvas之webgl的打开方式

    OK,一个完整的dome是从无到有的.这篇文章将记录我的webgl之旅.不定时更新. 首先,新建一个canvas元素. 然后获取到它. var e = document.ElementById('ca ...

  10. 41深入理解C指针之---指针与栈

    一.借助第40指针与链表的相关内容,稍微修改即可: 1.定义头文件stack.h代码如下: #include <stdlib.h> #include <stdio.h> #if ...