20155202 2016-2017-2 《Java程序设计》第4周学习总结
20155202 2016-2017-2 《Java程序设计》第4周学习总结
教材学习内容总结
继承与多态:
- 子类和父类有(is a)关系,
Role role1 =new Swordsman();右边类是左边类的一个子类,swordsman是一种(ia )Role; - private成员会被继承,只不过子类无法直接存取;
Swordsman swordsman=(Swordsman)role1;将role扮演Swordsman;- 权限关键字:
- protected 类内部和相同包类可存取,不同包类的子类可存取。
- public 类内部和相同包类,不同包类均可存取。
- private 类内部可存取。相同包类,不同包类不可存取。
instanceof运算符执行时期只要左操作数是右操作数子类型,instanceof返回ture多个类间出现重复代码时候,可以把相同的程序代码提升为父类;
继承时用
extends关键字,private成员也会被继承,子类无法直接存取,必须通过父类方法存取。检查多态语法是否正确,从=右边往左边读,右边是左边的子类就对。
多态就是用单一接口操作多种类型的对象。
没任何代码操作,就使用abstract标示该方法为抽象方法,表示这个类定义不完整不完整的类不能用来生成实例,不用写{},直接;结束。
[ ] public abstract class Role{
public abstract void fight();
}
一定要在class前标示abstract。子类继承抽象类有两种方法,
1:继续标示该方法为
abstract,(子类也是抽象类,class前你、标示abstract);2:操作抽象方法。
Java中三个权限关键字
public,protected,private.有四个权限范围。想执行父类中某个构造函数,用
super()指定。this()与super()择一调用,而且一定在构造函数第一行执行。java中,任何类的最上层父类,就一定是
java.lang.object。
JVM有垃圾收集机制,无法通过变量参考的对象,就是GC认定的垃圾对象。
子类中没有指定调用父类中哪类构造函数,默认会调用父类中无参数构造函数。
接口与多态
- 定义行为,JAVA中用interface关键字定义;
- 操作接口,用
implements关键字,implements Swimmmer(){。。。}就是操作接口 - 继承有“是一种”关系,操作接口表示“拥有行为”,但不是是一种关系。
- 行为多态
Swimmer swimmer1 = new Shark();判断“右边是不是拥有左边行为”,或者“右边对象是不是操作了左边接口”- final:
class前使用final,表示这是最后一个类,不会再有子类,定义方法时,定义该方法为final,说明最后一次定义该方法,子类不可以重新定义该方法。enum语法可定义枚举常数,enum中定义了特殊的类,实际上定义了类,无法撰写程序直接实例化,枚举类型,因为构造函数权限定为private,只有类中才可以实例化。
教材学习中的问题和解决过程
问题1:包权限问题

解决方案:Action中定义的execute()其实默认为public abstract,而some类在操作execte()方法时,没撰写public,默认了包权限,等于将Action中public的方法缩小到包权限,所以编译失败。需要把Some类中execute()设为public才可以运行。

代码调试中的问题和解决过程
问题1:无法从静态上下文中引用非静态方法”这个问题怎么解决?

解决方案1:我把Magician。setbolod大写M了,应该小写。
用static修饰的方法称为静态方法,修饰变量则为静态变量,又分别叫做类方法或者类变量。
静态方法中不能直接调用非静态方法。因为非静态方法不是独立存在的,它是依附于对象存在——即只有申明了对象,才能通过对象调用。而静态方法则可以直接通过类名调用,而不需要申明对象。因此直接引用非静态方法就会出错。
比如常见的main方法都是静态的,必须由static修饰,因此在main方法里调用类的其他非静态方法,都是需要先申明对象,才能用。否则就会出现引用非静态方法的错误。
要解决这个问题,可以去除一般方法的static关键字(如果是main方法,则不能去掉static)。另外一种方法就是把需要引用的方法也设置成静态方法。

问题2:构造函数问题,输出什么?

解决方案2:SOme是Other父类,题中SOme不是构造函数,因此并不会第一行执行父类的super(),直接输出下面的other service
问题3:p190第3题输出是什么?

解决方案:如果改成some,ToString 就可以正常输出,所以我感觉输出的是类里面文字转换成16进制数字了。

问题4:我不小心把全部代码误删除了,因为开元中国里面我的src文件夹里没东西了,我就pull了一下到本地,结果都没了我这个月的代码。





解决方案:
我把之前的垃圾桶里文件还原,找回了一些,但是彻底解决方法还是不知道,所以以后一定要有一个备份文件夹,防止弄丢。
代码托管
代码提交过程截图:

代码量截图:

上周考试错题总结
- 填空:Linux Bash中,(grep )命令可以进行全文搜索。
- CH04 判断:p86 Guess.java中guess的值无法输入12。(X)
- CH05 判断:Java中类总会有默认构造方法。(X)
- CH05 判断:private不能用在构造方法上,这样就无法创建对象了。(X)
- CH05 填空:Java中类的成员变量必须进行初始化,否则会出语法错误。(X)
- CH05 填空:Java中成员方法中引用成员变量,要使用(this)关键字。
- CH05 填空:Java中方法参数只用(传值)调用。
其他(感悟、思考等,可选)
本周学习时间很长,懂了好多东西,而且发现编程与看书一起效果最好。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/4 | 18/38 | |
| 第三周 | 500/1000 | 3/7 | 22/60 | |
| 第四周 | 700/1400 | 7/9 | 27/90 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:27小时
改进情况:编代码很多,但是误删除了,很伤心,但是也给我一个教训,要备份代码。
参考资料
20155202 2016-2017-2 《Java程序设计》第4周学习总结的更多相关文章
- 20155220 2016-2017-2 《Java程序设计》第九周学习总结
20155220 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity)即java数据库连接,是一种用 ...
- 20155211 2016-2017-2 《Java程序设计》第九周学习总结
20155211 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 一.JDBC入门 (一)JDBC简介 厂商在操作JDBC驱动程序时,依 ...
- 20155210潘滢昊 2016-2017-2《Java程序设计》第一周学习总结
20155210 2016-2017-2<Java程序设计>第一周学习总结 教材学习内容总结 1.1.1: 本节主要讲了Java的由来,1995年5月23日是Java公认的诞生日.还有版本 ...
- 20155313 2016-2017-2 《Java程序设计》第九周学习总结
20155313 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 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可以 ...
随机推荐
- Power shell 复制文件到远程主机
昨天因为要复制文件到多个服务器上,感觉一个个复制很麻烦,我就想用Power shell 命令来完成这个任务.具体代码如下: $servers= 'server1' ,'server2' $userna ...
- [EffectiveC++]item23:Prefer non-member non-friend functions to member functions
99页 导致较大封装性的是non-member non-friend函数,因为它并不增加“能否访问class内之private成分”的函数数量.
- java继承-final关键词用法
final关键字特点: 1.可以用来修饰变量.方法.类. 2.修饰的变量是一个常量.一旦被赋值就不能被修改(常量一般都和static关键字配合使用) 3.修饰类代表此类不能被继承4.修饰方法代表次方法 ...
- Mac OS Yosemite(10.10.3)系统下环境配置
/etc/bash_profile #Java export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/ ...
- Angular不同版本对应的Bootstrap组件
AngularJS 1.x版本对应的 bootstrap组件库是ui-bootstrap; http://www.cnblogs.com/pilixiami/p/5597634.html Angula ...
- js实现点击按钮显示某个区域 然后点击页面中任意其他位置,隐藏该区域
$(".licat-header-list").on("click",function(e){ $(this).addClass("active&qu ...
- swift动态库与use_frameworks
使用Dynamic 的优势: 模块化,相对于Static Library,Framework可以将模块中的函数代码外的资源文件打包在一起. 共享可执行文件 iOS 有沙箱机制,不能跨App间共享共态库 ...
- BZOJ2588:Count on a tree(主席树)
Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始 ...
- LayIM.AspNetCore Middleware 开发日记(六)嵌入资源的使用,layim.config的封装
前言 距离上一篇博客竟然已经10多天了...工作上的事,个人原因,种种吧.不多说废话,本文将会重点介绍layim的入口配置. LayIM配置 其实在开发者文档里面已经描述的很清楚了.除了几个重要的接口 ...
- I、Python 环境搭建
I.安装Python https://www.python.org/downloads/windows/ 下载路径总是变,认准那个名字 安装, 记住,所有语言都推荐安装在 默认路径,不要相信那些让你改 ...