20145321 《Java程序设计》第4周学习总结

教材学习内容总结

第六章 继承与多态

6.1 何谓继承

 1、继承共同行为:
继承基本上就是避免多个类间重复定义的行为。
Pull Up————可以把相同的程序代码提升为父类。
extends关键字————表示新建的类会扩充原有的类的行为。
2、多态与is-a:
子类只能继承一个父类,并且子类与父类之间有一种is-a的关系,让不是一种的类扮演另一种类需要加上类似
于强制类型转换的语法。
什么叫多态?抽象的解释就是使用单一接口操作多种类型的对象。
3、重行定义行为:
在继承父类之后,定义与父类中相同的方法部署,但执行内容不同,这称为重新定义(Override)。
在重新定义父类中某个方法的时候,子类必须撰写与父类方法中相同的签署。
如果要重新定义某方法,加上@Override就不用担心打错字的问题。
4、抽象方法、抽象类:
如果某方法区块中真的没有任何程序代码操作,可以使用abstract标示该方法为抽象方法。
子类如果继承抽象类,对于抽象方法有两种做法,一是继续标示该方法为abstract,二是操作抽象方法。

6.2 继承语法细节

 1、protected成员:
被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
2、重新定义的细节:
super关键字————在调用方法前加上super,可以取得父类中的方法定义。
重新定义方法要注意,对于父类中的方法权限,只能扩大但不能缩小。
3、再看构造函数:
创建子类实例后,会先执行父类构造函数定义的流程,再执行子类构造函数定义的流程。
父类中可重载多个构造函数,若子类构造函数中无指定执行父类哪个构造函数,默认调用父类中无参构造函数。
4、再看final关键字:
如果class前使用final关键字,表示这个类是最后一个,不会再有子类,也就是不能被继承。
5、java.lang.Object:
如果定义类时没有使用extends关键字指定继承任何类,那一定是继承java.lang.Object。
6、关于垃圾收集:
无法通过变量参考的对象被视为垃圾对象被JVM的垃圾收集机制处理。
第七章 接口与多态

7.1 何谓接口

 1、接口定义行为:
对于“定义行为”,可以使用interace关键字定义。
类要操作接口,必须使用implements关键字。
操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法,二是再度将该方法表示为
abstract。
2、行为的多态:
只要是操作同一个接口的对象,都可以使用同一方法(行为)。
3、解决需求变化:
在java中,类可以操作两个以上的类,也就是拥有两种以上的行为。
在java中,接口可以继承自另一个接口,也就是继承父接口行为,再在子接口中额外定义行为。

7.2 接口语法细节

 1、接口的默认:
接口中的方法没有操作时,一定得是公开并且抽象。
2、匿名内部类:
临时继承某个类或操作某个接口并建立实例,由于只使用一次,不需要为这些类定义名称,这时可以用匿名内部
类(Anonymous Inner Class)。
3、使用enum枚举常数:
enum定义了特殊的类,继承自java.lang.Enum,可用于定义枚举常数。

教材学习中的问题和解决过程

这周学习的继承让我感觉挺有趣,也可能是因为作者使用了设计游戏的代码引起了我的兴趣。不过代码也变得越来越长、复杂难码,在敲代码时老是出错,内容太多看得晕,到第七章都不怎么看得下去了。

代码调试中的问题和解决过程

都是打书上的代码,还没出现太大问题。这里只发托管目录截图,具体请上Git托管查看。

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 28篇 300小时  
第一周 150/150 1/2 20/20  
第二周 150/250 1/3 20/40  
第三周 150/300 1/4 20/60  
第四周 250/500 1/5 20/80  

20145321 《Java程序设计》第4周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. vue根据数组对象中某个唯一标识去重

    由于在vue中,会自动在数组和对象中加入_obser__观察者模式的一些属性,所以直接用数组的filter去重(下面这种),indexOf不能准确识别 var arr = [1, 2, 2, 3, 4 ...

  2. How to Design a Good API and Why it Matters

    前谷歌首席 Java 架构师谈如何设优秀的 API – 码农网 http://www.codeceo.com/article/google-java-good-api.html 2015-11-24 ...

  3. MySQL给一个字段递增赋值

    https://blog.csdn.net/kriszhang/article/details/72125203 首先设置一个变量,初始值为0: set @r:=0; 1 然后更新表中对应的ID列: ...

  4. window下cmd的宽度调整

    一直被cmd的宽度这么了好些年,刚才搜索了下,还真可以设置.标题栏右键属性,调整屏幕缓冲区宽度,只要足够长就不会换行了,然后调整窗口大小-宽度,不能超过屏幕缓冲区宽度,当小于屏幕缓冲区的时候,就会显示 ...

  5. JMeter场景运行(非GUI方式运行命令)

    JMeter场景运行方式可分为两种:  GUI方式运行,视窗运行,双击jmeter.bat启动运行即可以看到运行界面:  非GUI方式运行,在命令窗口中使用java –jar命名运行: 但不管是以 ...

  6. 【开发者笔记】插入排序过程呈现之java内置GUI表示

    先给代码,再给过程视频: package com.dyi.wyb.sort; import java.awt.Color; import java.awt.Graphics; import java. ...

  7. abap 中modify 的使用

    1.modify table itab from wa Transporting f1 f2 ... 表示表itab中符合工作区wa 中关键字的一条数据的 f1 f2字段会被wa中对应的字段值更新. ...

  8. vue的项目结构

    一. 准备工作 1. 初始化项目    vue init webpack itany    cd itany    cnpm install    cnpm install less less-loa ...

  9. ios开发中怎么获取应用崩溃日志

    如何获得crash日志 当一个iOS应用程序崩溃时,系统会创建一份crash日志保存在设备上.crash日志记录着应用程序崩溃信息,通常包含着每个执行线程的栈调用信息(低内存闪退日志例外),对于开发人 ...

  10. HTML5游戏开发系列教程6(译)

    原文地址:http://www.script-tutorials.com/html5-game-development-lesson-6/ 这是我们最新一篇HTML5游戏开发系列文章.我们将继续使用c ...