别样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是不是也被抽象了。那么随便定义一个类是不是
都会强迫你去定义里面包括的方法,这是不是非常麻烦。
况且大家有听说过上帝有抽象的么?上帝不是总是活在子民心中的么~
别样JAVA学习(五)继承上(1.1)Object类toString()的更多相关文章
- 别样JAVA学习(五)继承上(1.0)Object类equals()
上一节继承下(一)我们进行抽象类.接口以及多态的学习. 接下来大家我们讲点特殊的东西就是object类, 我们一直在说继承,子继承了父,父还有没有父类呢, 为什么这么思考,大家想构造函数的第一行是不是 ...
- Java 面向对象概述原理: 多态、Object类,转型(8)
Java 面向对象概述原理: 多态.Object类,转型(8) http://docs.oracle.com/javase/tutorial/java/IandI/override.html Java ...
- 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍
面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...
- Java学习笔记--继承和多态(上)
1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...
- Java学习笔记---继承和super的用法
自从换了个视频教学,感觉比原来那个好多了,就是学校网速太渣,好多视频看一会卡半天,只能先看看已经下载的了. 不过也好,虽然不能从开始开始重新开,但是已经看过一次,在看一次也是好的,就当巩固学习了. 继 ...
- Java学习笔记--继承和多态(中)
1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...
- Java学习笔记--继承和多态(下)
1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...
- java学习记录笔记--继承,super,Object类
继承: Java中的继承是单继承的. 1.子类拥有父类的全部属性和方法. 可是属性和方法的修饰符不能使private. 2.能够复用父类的代码. 方法的重写须要满足的条件: a.返回值类型 b.方法名 ...
- Java学习笔记31(IO:Properties类)
Properties类,表示一个持久的j集,可以存在流中,或者从流中加载 是Hashtable的子类 map集合的方法都能用 用途之一:在开发项目中,我们最后交给客户的是一个编译过的class文件,客 ...
随机推荐
- Leetcode30--->Substring with Concatenation of All Words(主串中找出连接给定所有单词的子串的位置)
题目:给定一个字符串S(主串),一个字符串数组words,其中的字符串的长度相同.找到所有的子串位置,要求是words中字符串的一个连接: 举例: For example, given:s: &quo ...
- adb devices 找不到夜神模拟器解决方法
先打开命令行窗口,输入adb devices,查看连接信息,大致意思是sdk的adb版本与夜神的adb版本不一致,导致. C:\Users\cz9025>adb devices List of ...
- [已解决] wordpress 修改 permalink 后 页面 404 问题
功能说明 为了利于SEO优化,我们需要将地址设置为永久链接,在层级不要太深的情况下实现伪静态页面的目的,例如wordpress 默认页面地址为: https://www.ryanzoe.top/?p= ...
- [python 函数学习篇]默认参数
python函数: 默认参数: retries= 这种形式 def ask_ok(prompt, retries=, complaint='Yes or no, please!'): while Tr ...
- php_strip_whitespace和trim的搭配使用
在学习kongphp框架时有这么一段代码是为了生成运行时文件的 $runfile = RUNTIME_PATH.'_runtime.php'; if(!is_file($runfile)) { $s ...
- oracle列转行 WM_CONCAT LISTAGG
开发给个SQL说给某个条件时报ORA-22922 代码段: SELECT 袋号, SUM(实际重量) AS 实际重量, SUM(材积重量) AS 材积重量, COUNT(运单号) AS 件数, TO_ ...
- 理解 Glance
OpenStack 由 Glance 提供 Image 服务. 理解 Image 要理解 Image Service 先得搞清楚什么是 Image 以及为什么要用 Image? 在传统 IT 环境下, ...
- cogs2060 除法表达式
http://blog.csdn.net/sdfzyhx/article/details/52254071 作为分母的数当然是越少越好.将x2作为分母,其他作为分子,不断约分,最后判断. /*by S ...
- 【BZOJ1040】骑士(环套树,树形DP)
题意:有一张N点N边的图,点有点权.相连的两个点不能同时取,问使点权和最大怎么取. 思路:如果是N点N-1边就是一棵树,即”没有上司的舞会“ 现在多了一条边,就是环套树的森林.我们枚举删哪条边,删后就 ...
- excel 表格lookup 的操作
这个实现语句如下,(写在2行然后向下拖动)(2007或以上版本): = IF(,ISBLANK($H2),$G2="), "", IF("), IF($H2&g ...