20155205 2016-2017-2 《Java程序设计》第4周学习总结
20155205 2016-2017-2 《Java程序设计》第4周学习总结
教材学习内容总结
第六章
- private成员会被继承,只不过子类无法直接存取,必须通过父类提供的方法来存取(若父类愿意提供访问)。
- 检查语法的逻辑是否正确,方法是从=右边往左读:右边是不是一种左边呢?例如:运用is a关系。
- 多态 :使用单一接口操作多种类型的对象,例如p165中的代码
showBlood(swordsMan);
showBlood(magician);
- 权限关键字与范围

- 如果子类构造函数中没有指定执行父类中哪个构造函数,默认会调用父类中无参数构造函数。
- 如果想执行父类中某构造函数,可以使用 super() 指定。如
class Some {
Some(){
System.out.println("调用Some()");
}
some(int i){
System.out.println("调用Some(int i)");
}
}
class Other extends Some{
Other(){
super(10);
System.out.println("调用Other()");
}
}
注 :this()与super()只能择一调用,而且一定要在构造函数第一行执行。
- class前也可以加上final关键字,如果class前使用了final关键字定义,那么表示这个类是最后一个了,不会再有子类,也就是不能被继承。
- 在Java中中,任何类追溯至最上层父类,一定就是Java.lang.Object.
- 在学习了重新定义toString()和equals()后,我知道了很多我们直接使用的方法是建立在比较复杂的基础之上的,因此感受到了在庞大的知识面前自己的渺小。
第七章
- 对于“定义行为”,可以使用interface关键字定义,接口中的方法不能操作,直接标示为abstract,而且一定是public。类要操作接口,必须使用implements关键字。操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法,二是再度将该方法标示为abstract。
- 接口中的方法没有操作时,一定得是公开且抽象,为了方便,可以省略 public abstract。
- 定义常数可用
public interface Action{
int STOP = 0;
int RIGHT = 1;
int LEFT = 2;
int UP = 3;
int DOWN = 4;
}
或者使用enum语法:
public enum Action{
STOP,RIGHT,LEFT,UP,DOWN
}
注意:enum实际上定义了类,enum中列举的常数,无法直接实例化,只有在类中才能实例化。
教材学习中的问题和解决过程
- 问题1:p173中说“重新定义方法要注意,对于父类中的权限,只能扩大不能缩小”,这是为什么呢?如果缩小了权限会发生什么呢?
- 问题1解决方案:上网搜索了相关资料。举个例子,在父类中是public的方法,如果子类中将其降低访问权限为private,那么子类中重写以后的方法对于外部对象就不可访问了,这个就破坏了继承的含义。如果缩小了权限,就会发生错误。
- 问题2:p179中有段代码是
public void add(Object o){
if(next == list.length){
list = Arrays.copyOf(list,list.length*2);
}
list[next++]=o;
}
第五行是什么意思?
- 问题2解决方案:Object o是分配一个引用,第五行的意思就是把收集到的对象存入list中。
- 问题3:子类重新定义与父类完全相同的方法这种情况是什么情况?
- 问题3解决方案:这种情况称为覆盖,此时,子类中已找不到父类原来的方法,它的内存位置已经被替代。
- 问题4:抽象类和接口的区别是什么?
- 问题4解决方案:参考博客抽象了和接口的区别,还看到“接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。”也能帮助理解。
代码调试中的问题和解决过程
- 问题1:在编译时输入之前的
javac -d bin src/Inheritance/Guest.java
出现了下图问题

- 问题1解决方案:输入以下代码即可,因为没有指明调用的类的位置。
javac -sourcepath src -d bin src/Inheritance/Guest.java
- 问题2:在编译p201代码时出现下图问题

- 问题2解决方案:这样的错误就属于自己不动脑筋的错误,明显之前我没有写Anemone和Shark类,还要人家编译成功--|||。
- 问题3:在编译p201代码时出现下图问题

- 问题3解决方案:查看代码发现自己多写了一个abstract

删去之后重新编译便成功。

注意:好好理解抽象类只能被继承不能实例化!
- 问题4:p202的代码编译后出现下图错误

- 问题4解决方案:文件名与类名字不相符,应该是教材出错了,将类名字更改为Airplane后编译成功。
代码托管
- 代码提交过程截图:
- 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图

- 代码量截图:
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图

上周考试错题总结
- 错题1:填空:Linux Bash中,(grep )命令可以进行全文搜索。
- 错题2:填空:System.out.println(“”+52+25);的结果是(5225)
System.out.println(+52+25“”);的结果是(77)
总结 :若输出引号在前,从左到右,级别相同,表示之后的数字是连接的关系;若输出引号在后,则表示之前的数字先相加再输出。
- 错题3:填空:两个Integer对象比较大小,可以使用(comareTo())方法
- 错题4:填空:可以使用java.util.Arrays的(fill())方法把数组初始化成相同的值。
总结:fill()是一个填充数组的方法,若数组无初始值,就可用此方法初始化。
- 错题5:填空:Java中的多维数组都是由(一维数组组成)。
- 错题6:填空:“30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)。
总结 :使用“类型.parse类型(number)”将字符串剖析为基本类型。
- 错题7:判断:Java中类总会有默认构造方法。(X)
总结 :JAVA任何一个类都有一个默认的无参构造函数,除非自己显示定义一个或多个构造函数。
- 错题8:Java中类的成员变量必须进行初始化,否则会出语法错误。(X)
- 错题9:填空:Java中成员方法中引用成员变量,要使用(this)关键字。
其他(感悟、思考等,可选)
慢慢感觉到很多东西都是有规律的,可能这就是日积月累的过程吧!
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 16/16 | 1/1 | 12/12 | |
| 第二周 | 124/140 | 1/2 | 19/31 | |
| 第三周 | 501/641 | 1/3 | 26/57 | |
| 第四周 | 664/1305 | 1/4 | 27/84 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:25小时
实际学习时间:27小时
改进情况:实际学习时间总比计划时间多,一开始打代码时间就过得很快了。
参考资料
20155205 2016-2017-2 《Java程序设计》第4周学习总结的更多相关文章
- 20155334 2016-2017-2 《Java程序设计》第九周学习总结
20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...
- 20155321 2016-2017-2 《Java程序设计》第九周学习总结
20155321 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 厂商在实现JDBC驱动程序时,依方式可将驱动程序分为四种类型: JDBC-OD ...
- 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学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
随机推荐
- ajaxFileUpload.js 无刷新上传图片,支持多个参数同时上传,支持 ie6-ie10
/* 131108-xxj-ajaxFileUpload.js 无刷新上传图片 jquery 插件,支持 ie6-ie10 依赖:jquery-1.6.1.min.js 主方法:ajaxFileUpl ...
- 不启动VS2013,直接打开帮助文档的方法
在使用VS2013做开发的时候,当我们需要查询一个知识点时,直接按"F1"键就可以打开配套的帮助文档.如果在没有打开VS2013的情况想查看它的帮助文档,我们应该怎么办呢?我们能否 ...
- 2017年的golang、python、php、c++、c、java、Nodejs性能对比(golang python php c++ java Nodejs Performance)
2017年的golang.python.php.c++.c.java.Nodejs性能对比 本人在PHP/C++/Go/Py时,突发奇想,想把最近主流的编程语言性能作个简单的比较, 至于怎么比,还是不 ...
- 《shell脚本学习指南》学习笔记之入门
为什么要使用shell脚本? shell脚本能够轻易处理文件与目录之类的对象,而且是各UNIX系统之间经过POSIX标准化的通用的功能,因此Shell脚本只要“用心写”一次,即可应用到很多系统上,因此 ...
- 利用内核cgroup机制轻松实现类似docker的系统资源管控
近几年,以docker为代表的容器技术异常火热,它的轻量.高效让人欣喜若狂,它被赋予了改变传统IT运维的使命.相信随着时间推移,以容器云为落地形式的产品将真正实现这一使命. 我们都知道docker能够 ...
- Objective-C日记-之NSPredicate
谓语:NSPredicate 1,概述: 用于设置指定的过滤器的条件,通俗的理解就是设置选择的条件,再对指定的对象应用这个条件 2,用法: a,首先设置谓语. NSPredicate *predica ...
- 关于js模拟c#的Delegate(委托)实现
这是我的第一篇博文,想来讲一讲js的函数.我的标题是js模拟c#的Delegate. 一.什么是Delegate(委托) 在jquery中有delegate函数,作用是将某个dom元素的标签的事件委托 ...
- 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛
2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 252 Solved: 1 ...
- 解决Gerrit的git unpack error问题和error Missing unknown ec867cebfd2be97c3603c45fac03c75dcf68d0ca
参考链接:http://www.cnblogs.com/yuxc/p/3508964.html 解决方法: 由于帖子里面用的是mysql数据库,而我用的是h2数据库,还特意自己去找了H2数据库的进入方 ...
- sqlplus入门使用
1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要保存文件的路径存在 /*分 ...