20145129 《Java程序设计》第4周学习总结
20145129 《Java程序设计》第4周学习总结
教材学习内容总结
- 继承与多肽
- 继承共同行为
- 继承是避免多个类间重复定义共同行为。(将相同的代码提升为父类)
- 关键字extends:表示这个类扩充另一个类的行为即继承。
- 优点:维护时只需修改父类,继承父类的子类无需修改。
- 多态与is-a
- is-a: Java中子类只能继承一个父类,因为子类与父类之间会有“is-a”的关系,中文“是一种”。
- 运用“是一种”来判断编译是否失败以及将扮演(Cast)看做叫程序闭嘴的语法。
- 并留意参考的对象实际类型,判断何时扮演成功,何时会抛出“ClassCastException”(失败)。
- 多态: 使用单一接口(指对象上可操作方法)操作多种类型的对象。
- 重新定义行为
- 在继承父类之后,定义与父类中相同的方法部署,但执行内容不同。
- 标注@Override:表示要求编译程序检查该方法是否真的重新定义了父类中某个方法,如果不是就会引发编译错误。
- 若想取得父类中的方法定义,可在调用方法前加super关键字,不能定义为private。
- 对于父类中的方法权限,只能扩大但不能缩小。
- 重新定义方法时除了可以定义权限较大的关键字外,其他部分必须与父类中方法签署完全一致。
- 重新定义方法时,如果返回类型是父类中方法返回类型的子类,也是可以通过编译的。
- 抽象方法、抽象类
- abstract抽象方法:Java中规定内含抽象方法的类,一定要在class前标示abstract来表示这是一个定义不完整的抽象类。(若某方法区块中真的没有任何程序代码操作可采用此方法)
- 用抽象类创建实例,就会引发编译错误。
- 子类如果继承抽象类,对于抽象方法有两种做法:一、继续标示该方法为abstract;二、操作抽象方法。
- 继承共同行为
- 继承语法细节
- protected成员
- 在不同包类只让子类可以直接存取。
- Java中实际上有4个权限范围,除了前面学到的,其中没有定义关键字的默认就是包范围即当在不同包类不可存取。
- 重新定义的细节(参考上文)
- 构造函数
- 构造函数可以重载,父类中可以重载多个构造函数,如果子类构造函数中没有指定执行父类中哪个构造函数,默认调用父类中无参数构造函数。
- 若定义了有参数的构造函数,可以加入无参数构造函数,即使内容为空也无所谓,增加使用弹性。
- final关键字
- 在指定变量值之后,不想再改变变量值,可在声明变量时加上final限定,若日后修改了final变量会出现编译错误。
- 若对象数据成员被声明为final,但没有明确使用=指定值,那表示延迟对象成员的指定,在构造函数执行流程中,一定要有对该数据成员指定值的动作,否则编译错误。
- class前使用final关键字定义,表示这个类是最后一个,不会有子类,也就是不会被继承。
- 定义方法时也可以限定该方法为final,表示这是最后一次定义方法,子类不可以重新定义final方法。
- java.lang.Object
- 若定义类时没有使用extends关键字指定继承任何类,那一定是继承java.lang.Object。
- java.lang.Object是所有类的顶层父类。
- (??对定义ArrayList类那部分有些模糊。)
- 重新定义 toString()
- 重新定义equals()
- 关于垃圾收集
- 对于不再有用的对象,JVM有垃圾收集机制,收集到的垃圾对象所占据的内存空间,会被垃圾收集器释放。
- protected成员
- 接口与多态
- 接口定义行为
- Java中可以使用interface关键字定义行为。
- 接口可以用于定义行为但不定义操作。
- 类要操作接口,必须使用implements关键字。操作某接口时,对接口定义的方法有两种方式:一、操作接口中定义的方法;二、将该方法标示为abstract。
- 操作接口表示“拥有行为”。
- 行为的多态
- 与上文中提到的多态类似。只不过在判断中把“是一种”换做“拥有...行为”。
- 解决需求变化
- 类可以操作两个以上的类,也就是拥有两种以上的行为。
- 类可以同时继承某个类,并操作某些接口。
- 写程序需要保证程序的弹性。
- 接口定义行为
- 接口语法细节
- 接口的默认
- 接口中的方法没有操作时,一定得是公开且抽象,可以省略“public abstract”此时编译程序会自动加上,并默认是public。
- 匿名内部类
- 在有临时继承某个类或操作某个接口并建立实例的需求,由于这类子类或接口操作类只能使用一次,不需要为这些类定义名称,此时可以使用匿名内部类。
- 使用enum枚举常数
- 使用enum枚举常数,实际上enum定义了特殊的类,继承自java.lang.Enum,这是由编译程序处理,直接撰写程序继承Enum类会被编译程序拒绝。
- enum实际上定义了类,而enum中列举的常数,实际上是"public static final",且为枚举类型实例,无法撰写程序直接实例化枚举类型,因为构造函数权限设定为private,只有类中才可以实例化。
- 接口的默认
教材学习中的问题和解决过程
在对第六章学习中对定义ArrayList类那部分有些模糊,具体还在请教同学。
代码调试中的问题和解决过程
编写代码过程中并没出现太大问题。(下图为代码托管截图)
其他(感悟、思考等,可选)
对书中所讲代码进行实际操作后发现,不是所有代码都要写一遍...总是在写完一段代码后看书发现这段代码并没有太大的意义,而真正需要动手操作的部分还在后面,这样效率一下低了很多。 对于本周学习我基本上把80%的课余时间用在了学习Java上不仅仅是看书还有看视频还有上网了解书上内容然而这两章虽然页数没有前几章多但是信息量非常庞大需要联系前两章内容,在这周结束时我也并不能完全消化它。表示我尽力了。
学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
| -------- | :----------------:|:----------------:|:---------------: |:-----:|
| 目标 | 3000行 | 15篇 | 300小时 | |
| 第一周 | 50/50 | 2/2 | 14/14 |
| 第二周 | 100/150 | 1/3 | 10/24 |
| 第三周 | 300/450 | 1/4 | 15/39 |
| 第四周 | 350/800 | 1/4 | 50/74 |
20145129 《Java程序设计》第4周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- nice和taskset命令
taskset -c 9,10 bash domain_analysis.sh && /home/work/odp/php/bin/php hourly_localdns_hijack ...
- HTTP协议概述
虽然cURL支持多种协议,但日常我们最常用的还是HTTP协议,下文中着重介绍HTTP的相关使用方法,因此我们要对HTTP协议有所了解. HTTP,超文本传送协议,通过因特网传送万维网文档的数据传送协议 ...
- ping 以及 traceroute 用法
目的:学习linux命令ping,traceroute的用法 1:ping的用法: man ping ping:判断某个主机是否有响应 linux-8o9i:~ # 119.29.29.29 PING ...
- 模仿QQ空间 网页设计
目的:1.通过模仿QQ空间,全自主写代码,熟悉网页设计的流程 2.熟练的掌握HTML.CSS.JS的应用 3.将在此过程中遇到的问题及其解决方法记录在此,以便取用. 开始: 一.登陆界面(index. ...
- MallBuilder 多用户商城管理系统 v5.8.1.1
MallBuilder是一款基于PHP+MYSQL的多用户网上商城解决方案.利用MallBuilder可以快速建立一个功能强大的类似京东商城.天猫商城.1号店商城的网上商城,或企业.行业化.本地化和垂 ...
- C puzzles详解
题目:http://www.gowrikumar.com/c/ 参考:http://wangcong.org/blog/archives/291 http://www.cppblog.com/smag ...
- decode行转列,case when,
1.行转列 转之前:
- tomcat学习笔记2
LNMT在网站架构中的实现过程: Client --> http --> Nginx --> reverse_proxy (http) --> tomcat (http con ...
- PHP多例模式
学习java就知道设计模式中有多例模式: 1.多例类可以有多个实例2.多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例. 大家都知道PHP单例模式,却很少说PHP多例模式,下面是在wik ...
- rest api设计[资源]
web开发资源列表 http://www.bentobox.io/ rest api资源 Designing an API http://www.vinaysahni.com/best-practic ...