20145320《Java程序设计》第4周学习总结
20145320《Java程序设计》第4周学习总结
教材学习内容总结
第六章 继承与多态
继承
继承作为面向对象的第二大特征,避免多个类间重复定义共同行为。即当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。我们也把单独抽取出来的那个类称为父类,其他的多个类称为子类。
java中使用关键字extend
命令实现继承,如
Magician继承Role的行为,再扩充了Role没有的fight与cure行为
子类可以直接访问父类中的非私有的属性和行为,而对于private成员也会被继承,只不过子类无法直接存取,必须通过父类提供的方法来存取(如果父类愿意提供方法的话)。
在java中,子类只能继承一个父类,继承有个重要的关系,就是子类与父类间会有is-a
关系。
例如Role role=new SwordsMan();
可以编译,
而SwordsMan swordsMan= new Role();
是不行的,没有搞清楚谁是谁的父类。
继承成功了
多态
什么叫多态?以抽象讲法解释,就是使用单一借口操作多种类型的对象。
例如:showBlood()
方法中,既可以通过Role
类型操作SwordsMan
对象,也可以通过Role
类型操作Magician
如果某方法区块中没有任何程序代码操作,可以使用abstract
标示该方法为抽象方法,该方法不用撰写{}
区块,直接“;”结束即可。类中若有方法没有操作,并且标示为abstract
,表示这个类定义不完整,因此也就不能用来生成实例。Java中规定内含抽象方法的类,一定要在class
前标示abstract
,表示这是一个定义不完整的抽象类。
java中有public、protected、与private三个权限关键字,但实际上有四个权限范围
(图转自娄老师)
如果子类构造函数中没有指定执行父类中那个构造函数,默认会调用父类中无参数构造函数。如想执行父类中某构造函数,可以使用super()
指定。this()
与super()
只能选择一个调用,并且一定要在构造函数第一行执行
第七章 接口与多态
对于“定义行为”,可以使用interface
关键字定义,例如public
、 interface
、 Swimmer
,接口中的方法不能操作,直接表示为abstract
,而且一定是public
。类要操作接口,必须使用implements
关键字。操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法,二是再度将该方法标示为abstract
,例如: 鱼会游泳
以java的语意来说,而继承是is-a
的关系,操作接口则表示“拥有行为”关系,对于接口多态语法的判断,方式是“右边是不是拥有左边的行为”,或者“右边对象是不是操作了左边接口”。
在教材中,会游泳的东西,都拥有swimmer的行为,都操作了swimmer接口
运行结果
可以使用接口枚举常数,只能定义为public static final
。public static final
可以省略,编译程序会协助补齐。
接口可以继承别的接口,也可以同时继承两个以上的接口,同样也是使用extends
关键字,这代表了继承父接口的行为。
enum
实际上定义了类,而enum
中列举的常数,实际是public static final
,且为枚举类型实例,无法撰写程序直接实例化枚举类型,因为构造函数权限设定为private
,只有类中才可以实例化。
代码调试中的问题和解决过程
这周的代码托管
其他(感悟、思考等,可选)
这周的两章结合比较紧密,但是要我在一周之内完全掌握这两章内容实在是有点难度。为了学习java,我放弃了学习其他科目的时间,加上备考计算机二级,这周基本上就没有学习其他科目的内容。虽然大家都
沉浸在学习java的海洋中,但是我就发现大家就只在学习java了,连上周的密码学的作业,这么简单的题目,大家都在相互抄袭。可笑!我就实话说吧,一周两章要人命,而且也学不精!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 1/1 | 20/20 | |
第二周 | 300/500 | 1/2 | 18/38 | |
第三周 | 300/800 | 1/3 | 22/60 | |
第四周 | 300/1100 | 1/4 | 30/90 |
参考资料
20145320《Java程序设计》第4周学习总结的更多相关文章
- 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学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- 【BZOJ】1119: [POI2009]SLO
题意 长度为\(n(1 \le n \le 1000000)\)的账单,\(+\)表示存1,\(-\)表示取1,任意时刻存款不会为负.初始有\(p\),最终有\(q\).每一次可以耗时\(x\)将某位 ...
- 热烈庆祝华清远见2014嵌入式系统(Linux&Android)开发就业培训课程全面升级
近日,华清远见公开宣布:2014嵌入式系统 (Linux&Android)开发就业培训课程再次升级!据悉,华清远见如今已经持续10年,一直保持课程每年2次的更新的频率.华清远见的每 次课程更新 ...
- C#读取XML文件的方法
先写一个xml文件: <?xml version="1.0" encoding="utf-8" ?> <bookste> <!-- ...
- Emmet:HTML/CSS代码快速编写神器
本文来源:http://www.iteye.com/news/27580 ,还可参考:http://www.w3cplus.com/tools/emmet-cheat-sheet.html Em ...
- LaTeX算法排版
需要包含的 \usepackage[noend]{algpseudocode} \usepackage{algorithmicx,algorithm} 源码 \begin{algorithm}[t]\ ...
- Linux下配置SVN
1.安装svn yum -y install subversion 2.创建SVN版本库目录 mkdir -p /var/svn/svnrepos (-p参数:如果没有这个目录,则创建这个目录) 3. ...
- 字符串格式化命令 sprintf
原型 int sprintf( char *buffer, const char *format, [ argument] … ); 参数列表 buffer:char型指针,指向将要写入的字符串的缓冲 ...
- NY-字符串替换
描述编写一个程序实现将字符串中的所有"you"替换成"we" 输入 输入包含多行数据 每行数据是一个字符串,长度不超过1000 数据以EOF结束 输出 对于输入 ...
- Web前端开发基础 第四课(CSS元素分类)
元素分类 在讲解CSS布局之前,我们需要提前知道一些知识,在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <di ...
- BizTalk开发系列(三十四) Xpath
XPath 是在 XML 文档中查找信息的语言,在BizTalk的开发中应用非常广泛,当然你可以不必先学Xpath再去学BizTalk.但是如果对Xpath有一定了解的 话,在很多应用下会使你的开发更 ...