《J2SE 回炉再造10》-------溺水狗
第四章 面向对象编程基础篇(6)
- Java相关API介绍
当大家从“HelloWorld”接触到Java时,证明我们正式诞生Java世界的新手村中,当我们在新手村练到一定等级时,渴望去更大的世界去看看,打更多的怪(类),获得更多的宝藏(方法),游戏里会对怪进行介绍,方便玩家掌握其弱点,进而击杀,而API就是Java世界的怪物宝鉴,记录了Java世界所有的怪(类)和宝藏(方法),当我们完全掌握API可以说Java世界任你遨游。下面简单说下获取方法(以Java8为例):
- 点击下面官网链接然后按下图操作
- 选中Accept License Agreement
- 点击下载就得到一个相关的压缩包,解压->docs文件夹->api文件夹(下载英文版)
- Java8 API在线文档(英文版)
- Object类部分方法描述
- toString()方法
- toString()方法测试
这里的(“d=” + d)等于(“d=” + d.toString())。
哈希编码独一无二的代表了一个对象,并且通过哈希编码可以找到对象的位置。
- equals()方法
- equals()方法测试
内存分析:
继承自Object类的equals()方法中比较的是对象的引用,故c1==c2的原理等同于c1.equals(c2)。下图是API中关于Object类的equals()方法的简单介绍。
下图对equals()方法进行重写:
测试1:String中的Equals()方法:
内存分析如下图:
关于字符串内存分析的视频(马士兵)
有关Java内存分析的大佬博客
怕有一天大佬删除博客我找不到就做了截图保存(非原创,侵删)
String类中对equals()方法进行了重写如下图:
测试2:String字符串中的equals()方法
内存分析及原理参见上文链接及下一个链接(非原创,向大佬学习)
上述有关String字符串的拼接及相关内存分析
- 对象转型
对象转型可带来比较不错的程序可扩展性,但并不是最佳且对在实现Java多态中具有重要意义。
其中instanceof测试的是对象的实际类型而不是引用类型,具体实例参照下例。
相关定义及注意事项:
实例:
部分内存分析图:
上述内存图的相关解释: 父类引用指向子类对象(类似门缝里看人)只能看到作为父类的属性和方法,这里a是Animal类型,所以furColor属性访问不到。 - 多态/动态绑定
多态是Java中面向对象的核心部分。
实现多态必要的三个条件:
a)必须要有继承。
b)必须要有重写。
c)必须要有父类引用指向子类对象。
定义:
实例:
内存分析图:
具体的内存分析如不清楚可以参考:马士兵老师多态分析
5. 抽象类(关键字abstract)
为了更便于使用多态,满足其三个必要条件出现了抽象类abstract的概念。
a)含有抽象方法的类必须为抽象类。
b)抽象类必须被继承但抽象类无法实例化。
c)抽象方法必须被重写且抽象方法只需声明无需实现。
6. Final关键字
7. 接口(关键字interface)
定义及特性:
实例:
接口可以帮助我们实现多重继承这种逻辑,接口和他的实现类之间存在着多态性。
注:一个疑问假设接口A和接口B中存在函数名相同的函数,则它们的实现类是如何实现的?如何解决冲突?情况如下图。
具体疑问链接如下马士兵老师的interface接口实现疑问
===========================================
重点总结
上述总结的相关链接(马士兵版)
注:本博客由溺水狗原创但其学习资源资料来源于网络(马士兵老师的教学视频),特此感谢马士兵老师
《J2SE 回炉再造10》-------溺水狗相关推荐
- 《J2SE 回炉再造06》-------溺水狗
第四章 面向对象编程基础篇(2) Java与面向对象的缘分 为什么要使用对象,意义是什么? Java中的类如何定义? 类的定义包括静态(成员变量/属性)和动态(方法)两部分 成员变量与局部变量的有关事 ...
- 《J2SE 回炉再造18》-------溺水狗
第十二章 GUI编程 1. 提纲 2. AWT包 3. Component和Container 4. Frame类 代码1: import java.awt.*;public class TestFr ...
- 《J2SE 回炉再造17》-------溺水狗
第十一章 网络编程 1. 提纲 值得注意的是网络编程不等同于网站编程 2. 网络基础概念 3. 网络通信协议及接口 4. 数据分层的思想 5. 数据封装和数据拆封 6. IP协议 IPV4协议中用4个 ...
- 《J2SE 回炉再造16》-------溺水狗
第十章 线程 1. 提纲 2. 线程的基本概念 进程是一个静态的概念,严格意义上讲并不能执行,我们所说的进程执行指的是进程里的主线程(main()方法)开始执行了 3. 线程的创建和启动 只要可以使用 ...
- 《J2SE 回炉再造15》-------溺水狗
第九章 输入/输出流.字节/字符流.节点/处理流 1. 提纲 2. 概述 注1:输入/输出流:都是站在程序的角度来说的,而不是文件的角度.参考理解 注2:输入流:将其他资源传送到内存(程序):输出流: ...
- 《J2SE 回炉再造13》-------溺水狗
第七章 String.StringBuffer.包装类.Math类.File类.枚举类 提纲: String类(不可变字符序列) 练习一参考答案 练习二参考答案 StringBuffer类(可变的字符 ...
- 《J2SE 回炉再造14》-------溺水狗
第八章 容器类 Collection接口(Set.List.Map).Iterator接口.Comparable接口 提纲 容器的概念 Set无序不可重复,List有序可重复,两者是否equals C ...
- 《J2SE 回炉再造12》-------溺水狗
第六章 数组 提纲: 一维数组概述: 元素类型为引用类型的数组: 3. 数组的初始化 注: 理解main函数中的参数:String[] args 约瑟夫环(逢三减一):选择排序法.冒泡排序法以及数组模 ...
- 《J2SE 回炉再造11》-------溺水狗
第五章 异常 1. 提纲 2. Java异常概念 注:catch到的所有异常都必须进行操作,不然容易被忽略吞噬,造成安全隐患. 实例 3. 异常的分类 注:异常分类图十分重要,要分清哪种Excepti ...
最新文章
- vue实现点击后多级标题联动变化
- ​HealthKit开发快速入门教程大学霸内部教程
- JZOJ 4676. 【NOIP2016提高A组模拟7.21】模板串
- IBM存储部分常见配件PN号查询及描述翻译
- 日志框架 android,深度剖析Android JDK 日志框架
- hrtimer的简单使用 + 原理和实现【转】
- 阿里云移动研发平台EMAS,是如何连续5年安全护航双11的?
- Android 获取信号强度
- 如何在oracle中查询所有用户表的表名、主键名称、索引、外键等 - Oracle 基础和管理_files...
- Hash Table in C
- NetSet:一款功能强大的自动化网络流量安全增强工具
- Android技术栈总结
- linux系统怎么改输入法,linux系统输入法怎么切换
- PLSQL配置Oracle 64位
- SAAS-HRM-day4
- 【学习笔记】用Mac自学虚幻4
- 大数据扫黄如此精准,你中招了没
- 爬虫 - 提高爬虫效率的方法
- 对Android初学者学习中的几点建议
- 邮储社招Java笔试题_2019年及历年中国邮政储蓄银行社招笔试题和参考答案6套