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 ...
随机推荐
- kafka部分重要参数配置-broker端参数
broker端参数主要在config/server.properties目录下设置: 启动命令:nohup ./kafka-server-start.sh -daemon ../config/serv ...
- working-with-php-and-beanstalkd
原文出处:http://www.lornajane.net/posts/2014/working-with-php-and-beanstalkd Working with PHP and Beanst ...
- PyCharm创建虚拟环境 和 TVTK库的安装
注:示例系统环境:Windows10 64位 + Anaconda3: 昨天安装TVTK库遇到些麻烦,当时随便将库下到个文件夹安装后(没找到VENV文件夹...), 进行测试:from tvtk.to ...
- URAL-1039 Anniversary Party---树形DP入门题
题目链接: https://cn.vjudge.net/problem/URAL-1039 题目大意: 开一个party,每个员工都有一个欢乐值,只有是上司和下属不同时存在时才能欢乐,问怎样安排能有最 ...
- 网络Socket编程(简易qq实现之C/S通信1)
1. 目标:实现两个用户之间的通信,利用的是简单的Socket知识以及简略界面 2. 界面:分为客户端与服务器端(如下图) 3. 基本功能:客户端先向服务器端发送一个消息,这样就可以让客户端与服务器端 ...
- - (void)addConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints
Adds multiple constraints on the layout of the receiving view or its subviews. All constraints mus ...
- 【51nod 1514】 美妙的序列
题目 我们发现我们得正难则反 还是设\(f_i\)表示长度为\(i\)的序列个数 考虑容斥 \[f_i=i!-\sum_{j=1}^{i-1}f_j(i-j)!\] \(i!\)显然是总方案数,我们减 ...
- seek()和tell()在文件里转移
Seek()方法允许在输入和输出流移动到任意的位置,seek()有好几种形式.包含:seekp() 方法和seekg()方法,p是put的意思,g是get的意思:其中输入流里用seekg()函数,输出 ...
- 如何异步的处理restful服务(基础)
1.使用Runnable 2.使用DeferredResult 3.异步处理的一些配置 正常请求方式 package com.nxz.controller; import lombok.extern. ...
- MFC文档应用程序CToolBar:设置两个工具条并列停靠到同一条边上 转
转自:http://blog.csdn.net/panshiqu/article/details/9369891# 将多个工具条同时并列停靠在某窗口的某一条边上.对于这种停靠方法,利用上述工具条控制函 ...