20155229 2016-2017-2 《Java程序设计》第四周学习总结
20155229 2016-2017-2 《Java程序设计》第四周学习总结
教材学习内容总结
第六章:
extends:继承某个类,继承之后可以使用父类的方法,也可以重写父类的方法,只要那个类不是声明为final或者那个类定义为abstract的就能继承。
JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行。
eg.class A extends B implements C,D,E
子类与父类之间有is-a的关系。
继承父类之后,定义与父类中相同的方法部署,但执行内容不同,这称为重新定义。
内建的标准标注:
@Override
表示要求编译程序检查内含抽象方法的类,一定要在class前标示abstract
子类继承抽象类:①继续标示该方法为abstract;②操作抽象方法。
权限关键字与范围
权限从小至大:private、无关键字、protected、public
取得父类中的方法定义,调用前加上super关键字,但是父类不能为private,this和super只能调用,一定要在构造函数第一行执行。
final:表示不会再有子类,不能被继承。
java.lang.Object是所有类的顶层父类
第七章:
接口可以用于定义行为但不定义操作
inferface定义抽象行为与外观,接口中的方法可声明为public abstract,接口中的方法没有操作时,public abstract可以省略。
enum定义枚举常数。实际定义特殊的类,继承自java.lang.Enum
JDB知识点:
stop in 用来设置方法断点,stop at 设置行断点
学习(JDB)调试我们要学会设置四种断点:方法断点、行断点、条件断点、临时断点
命令 | 作用 |
---|---|
run | 开始调试 |
next | 执行下一个语句 |
locals | 查看局部变量 |
step | 进入方法,进入函数跟踪 |
dump | 查看对象的值 |
where all | 告诉所有线程的当前运行位置 |
list | 当前运行的代码 |
quit/exit | 退出JDB |
教材学习中的问题和解决过程
问题一:this()和super()的区别
解决: super表示父类的意思,是离super最近的一个父类。this变量代表对象本身。
两者引用构造函数时:①super:调用父类中的某一个构造函数
②this:调用本类中另一种形成的构造函数
eg.super:
class Some {
Some() {
System.out.println("调用Some()");
}
Some(int i) {
System.out.println("调用Some(int i)");
}
}
class Other extends Some {
Other() {
System.out.println("调用Other()");
}
Other(int i) {
super(i);
}
}
问题二:操作equals()实际上是操作equals()也操作hashCode()???
解决:hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值。
①如果根据 equals(Object)方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
如果两个hashCode()返回的结果相等,则两个对象的equals方法不一定相等。
②如果根据equals(java.lang.Object)方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不一定生成不同的整数结果。
问题三:abstract方法和abstract类
解决:abstract 不可以和static、virtual、final、native一起使用
抽象类和抽象方法的关系:含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法。
1:用abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。
2:用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。
代码调试中的问题和解决过程
- 问题一:按照书上的代码,出现的问题和上周一样,类中找不到符号和还有没有void main这两个问题。
解决方案:要建立包,
把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用
这个简单但困扰我很久的问题终于解决了。
eg.
问题二:在写p214的ClientQueue代码时,出现了以下的错误
我又仔细对照书上检查,没有错,我就暂时没有管这个问题。最后运行整个包的代码时,结果如下,与书上的答案一样。
但我还是上网查询了这个问题,网上说明错误如下
所以泛型应该怎么编写?这又是一个新的问题。
(我在网上找到关于 泛型 的一篇博客 ,但是内容较多,在提交博客前,这篇博客还没有学习完,会在下周学习完这个问题的。)
代码托管
- 代码提交过程截图及代码量截图:
- 因为这周在git commit时出现了以下的错误,所以我重新建立了一个文件夹,将之前的代码复制了过来,所以总代码量还是总代码量,但这周的代码量=1382-551(之前的代码量)=831;
上周考试错题总结
错题一:19.填空:“30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)
错题二:1.填空:Linux Bash中,(grep )命令可以进行全文搜索。
grep它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行
错题三:4.填空:System.out.println(“”+52+25);的结果是(5225)
错题四:5.填空:System.out.println(52+25+””);的结果是(77)
错题五:11.判断:Java中,=与==并没有在基本类型和类类型的不同。(OK)
错题六: 28.填空:Java中类的成员变量必须进行初始化,否则会出语法错误。(X)
错题七: 15.判断:Java中的二维数组必须是M*N的规则数组。(X)
错题八:30.填空:Java中方法参数只用(传值)调用。
其他(感悟、思考等,可选)
这周的学习内容是继承、接口与多态的运用,第六章刚开头的游戏角色和
第七章的海洋乐园游戏是比较让我感兴趣的,想要开发一个游戏或者软件,就是要考虑到方方面面的问题。继承与接口仿佛就像每次想到的小问题,在父类的基础上进行添加,这样的编写比在c语言中要方便的多,而且逻辑性比较清晰。
在代码的练习上,我觉得还是不够,因为遇到的题目有限,所以很多还不是很熟练,还要参考书上的例子才能写出代码,所以在以后,还是要多多练习代码,毕竟学习c语言的时候除了理解,更多的也是练习代码。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 15篇 | 400小时 | |
第一周 | 9/9 | 1/1 | 20/20 | |
第二周 | 162/ 171 | 1/2 | 25/45 | 学习java的基础语法 |
第三周 | 380/ 551 | 1/3 | 25/70 | 学习java对象及封装 |
第四周 | 831/ 1382 | 1/4 | 23/93 | 学习java的继承、接口与多态的运用 |
计划学习时间:25小时
实际学习时间:23小时
改进情况:这周可能因为对继承和接口的理解较快,学习的时间也比计划的时间少。
参考资料
20155229 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 ...
随机推荐
- linux下常用命令:
常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir ...
- System.Buffer 以字节数组(Byte[])操作基元类型数据
1. Buffer.ByteLength:计算基元类型数组累计有多少字节组成. 该方法结果等于"基元类型字节长度 * 数组长度" , , }; , , }; , , }; Cons ...
- 栋哥你好,让我们回顾最初认识C++的时候(课堂作业)
计算器的第一步,至今还记记忆犹新,本次的课堂作业,便是那个框架.闲话少叙,代码如下传送门: Main.cpp #include "stdafx.h" #include<ios ...
- TreadingTCPServer
TreadingTCPServer实现的socket服务器内部会为每个client创建一个线程,该线程用来和客户端进行交互. 1.TreadingTCPServer基础 使用TreadingTCPSe ...
- jquery实现的时间轴
代码 样式文件style.css 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...
- Math Summary 数论总结
一.素数 Miller-Rabin 首先介绍一下伪素数:若n是一个正整数,且存在正整数a满足$a^{n-1}\equiv1\;(mod\;n)$ (费马小定理,但n不一定为素数) 那么我们说n是基于a ...
- Kali-linux渗透攻击应用
前面依次介绍了Armitage.MSFCONSOLE和MSFCLI接口的概念及使用.本节将介绍使用MSFCONSOLE工具渗透攻击MySQL数据库服务.PostgreSQL数据库服务.Tomcat服务 ...
- urlparse 用法
ifrom urllib2 import urlparse ‘’ captcha_id = urlparse.parse_qs(urlparse.urlparse(link).query, True) ...
- 自己制作html页面用的字体图标。
从网上看到的一个制作字体图标的教程,自己试用过,确实还不错,就把教程搬过来了,方便查看. 我们UI做出来矢量的图,放到这个软件里操作,下面有教程,之后输入.ttf或是.otf格式的字体,我是在网上找了 ...
- PAT——1068. 万绿丛中一点红
对于计算机而言,颜色不过是像素点对应的一个24位的数值.现给定一幅分辨率为MxN的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围8个相邻像素的颜色差充分大. 输入 ...