20155319 2016-2017-2 《Java程序设计》第四周学习总结
20155319 2016-2017-2 《Java程序设计》第四周学习总结
教材学习内容总结
继承
6.1.1 继承共同行为
- 定义:继承基本上就是避免多个类间重复定义共同行为。
- 优点:1.提高了代码的复用性。2.让类与类之间产生了关系,才有了多态的特性。
3.减少代码冗余;维护变得简单;扩展变得容易。 - 用
extend
来继承父类。
6.1.2 多态与is-a
- 多态定义:使用单一接口操作多种类型的对象。
is-a
关系定义:子类只能继承一个父类,“是一种”关系。- 编译程序在
=
从右向左会检查,右边是不是左边的子类。 - 可以在程序中加入语句强制默认为一种类型eg:Swordsman swordsman=
(Swords)
role1; - java语言中只支持单继承,不支持多继承。(由于多继承易带来安全隐患:当多个父类中定义了相同功 能,但功能内容不同时,子类对象不确定要运行哪一个。但是java保留这种机制,并用另一种体现形式来完成表示。多实现。)
6.1.3 重新定义行为
- 定义:在继承父类之后,定义与父类中相同的方法部署,但执行内容不同。
- 注意:在重新定义父类中某个方法时,子类必须撰写与父类方法中相同的签署。
- JDK5之后支持标注,如果要重新定义某方法,加上
@override
,就不用担心错字问题。
6.1.4 抽象方法、抽象类
- 内含抽象方法的类,一定要在
class
前标示abstract
,该方法不用撰写{}区块,直接以;结束。 - 子类继承抽象类,对于抽象方法有哪些做法?1.继续标示该方法为
abstract
2.操作抽象方法。
6.2 继承语法细节
6.2.1 protected成员
- 被声明为
protected
的成员,想通报中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。 - 依权限小至大来区分,就是
private
、无关键字、protected
与public
,若不知使用哪个,就先使用private
。
6.2.2 重新定义的细节
- 如果想取得父类中的方法定义,可以在调用方法前,加上super关键字,但不能定义为private(因为这就限定只能在类内使用)。
- 注意:对于父类中的方法权限,只能扩大但不能缩小。若原来成员public,子类中重新定义时不可为private或protected.
- JDK5之后重新定义方法时,如果返回值类型是父类中方法返回值类型的子类,也是可以通过编译的。
6.2.3 再看构造函数
- 如果子类构造函数中没有指定执行父类中哪个构造函数,默认会调用父类中无参数构造函数,若父类中只有有参数的构造函数,会出现编译错误。
this()
与super()
只能择一调用,而且一定要在构造函数第一行执行。
6.2.4 再看final关键字
- 定义:最终。class前如果使用了final关键字定义满么表示这个类是最后一个,不会再有子类,就是不能被继承。
- 特点:1.可以修饰类、函数、变量。 2.被final修饰的类不可以被继承。3.被final修饰的方法不可以被复写。4.被final修饰的变量是一个常量,只能赋值一次。5.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
6.2.5 java.lang.Object
- 如果定义类时没有使用extends关键字指定继承任何类,那一定是继承
java.lang.Object
。 - 任何类追溯至最上层父类,一定就是
java.lang.Object
6.2.5 垃圾收集
创建对象会占据内存,如果程序执行流程中已无法再使用某个对象,该对象就只是耗内存的垃圾。
JVM有垃圾收集机制,收集到的垃圾对象所占据的内存空间,会被垃圾收集器释放。
垃圾对象:执行流程中,无法通过变量参考的对象。
接口
7.1 何谓接口
- 格式:
interface{}
- 接口中将出现“多继承”通过两一种形式体现出来,即“多实现”。
- 接口是不可以创建对象的,因为有抽象方法。
- 接口可以被类多实现,也是对多继承不支持的转换形式。java支持多实现。
多态中成员函数的特点——编译看左边,运行看右边。
在多态中成员变量的特点——无论编译和运行,都参考左边(引用型变量所属的类)。
在多态中静态成员函数的特点——无论编译和运行,都参考左边。
7.2接口语法细节
- 接口中的
public
abstract
可以省略 - 接中可以使用
extends
继承接口,并且可以继承多个接口 - 匿名内部类与Lambda
- JDK8 前在匿名内部类中访问局部变量,则该局部变量必须为
final
代码调试中的问题和解决过程
- 最开始尝试编译运行Role与Swordman,点开run却没有
- 这些并不是主程序,没有main入口。
代码托管
代码提交过程截图:
代码量截图:
上周考试错题总结
- 填空:Linux Bash中,(grep )命令可以进行全文搜索。
- 对Linux命令还是有很多没有掌握。
- 填空:两个Integer对象比较大小,可以使用(comareTo())方法
- 书上知识没有记住,误记成了equal(),现在已经掌握了、
- 判断:Java中类总会有默认构造方法。(X)
- 概念不牢。
其他(感悟、思考等,可选)
-一周两章的内容确实不少,需要下更大功夫,更多的时间去理解,敲代码,不过感觉学到了游戏的初步小程序,感觉内心很满足,希望以后也可以编写自己的小游戏!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 23/61 | |
第四周 | 300/1300 | 2/9 | 20/81 |
计划学习时间:23小时
实际学习时间:15小时
20155319 2016-2017-2 《Java程序设计》第四周学习总结的更多相关文章
- Java程序设计第四周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...
- 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈
对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...
- 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结
<面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...
- 20155318 2016-2017-2 《Java程序设计》第九学习总结
20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...
- 《Java程序设计》第二学习总结
<Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 20145120黄玄曦 《java程序设计》 寒假学习总结
1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
随机推荐
- Windows 下安装Python包(Numpy)的错误:Unable to find vcvarsall.bat
情景简介: Windows 环境下安装Python2.7的Numpy扩展包时提示:error: Unable to find vcvarsall.bat 经过不懈的Google/Bing,发现不仅安装 ...
- SVM中为何间隔边界的值为正负1
在WB二面中,问到让讲一下SVM算法. 我回答的时候,直接答道线性分隔面将样本分为正负两类,取平行于线性切割面的两个面作为间隔边界,分别为:wx+b=1和wx+ b = -1. 面试官就问,为什么是正 ...
- Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier
php 连接 sqlserver 时, 程序生成的sql语句, 如果在 sqlserver客户端执行时, 可以正确返回结果, 在程序中执行, 总返回 false, 打开调试也没有任何错误. 无意中发现 ...
- String 的字面量、常量池、构造函数和intern()函数
一.内存中的 String 对象 Java 的堆和栈 对于基本数据类型变量和对象的引用,也就是局部变量表属于栈内存: 而通过 new 关键字和 constructor 创建的对象存放在堆内存: 直接的 ...
- leaflet 中文API
LeafLet js 官网:http://leafletjs.com/index.html LeafLet js 官网demo: http://leafletjs.com/examples.html ...
- [LuoguP4711]分子质量(小模拟+玛丽题)
--这个题我居然可以把他\(1A\)--真是让我不知其可\(qwq\) \(Link\) \(emmmm\)好像发现了什么固定的套路(?)-- 大概就是这种题总会有 1.读入数 方案:快读即可. 2. ...
- 内核调试工具——strace
简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...
- Oracle 11G 隐含参数“_controlfile_autobackup_delay”
RMAN设置控制文件自动备份,当发生数据库备份时,或建表空间,删除log文件等物理结构发生改变时,oracle会自动备份控制文件. Oracle 10g会立刻备份,Oracle 11g会有几分钟的延迟 ...
- Linux-- 文件编辑器 vi/vim(1)
初识 vi/vim 文本编辑器 1.vi 和 vim 相同,都是文本编辑器,在 vi 模式下可以查看文本,编辑文本,是 Linux 最常用的命令,vi 模式下分为三部分,第一部分一般模式,在一般模式中 ...
- PHP-----PHP程序设计基础教程----第三章函数
3.1 初识函数 3.1.1 函数的定义 语法: function 函数名([参数1,参数2,......]) { 函数体 } (1)function:在声明函数时必须使用的关键字 (2)函数名:创建 ...