20145101《Java程序设计》第4周学习总结
20145101《Java程序设计》第4周学习总结
教材学习内容总结
第六章 继承与多态
- 继承:避免多个类间重复定义共同行为。
把相同代码提升为父类
运用extends关键字的子类会继承扩充父类行为
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。
多个类可以称为子类,单独这个类称为父类或者超类。
子类可以直接访问父类中的非私有的属性和行为。
public class Game1Role {
private String name;
private int level;
private int blood;
public int getBlood(){
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
通过extends 关键字让类与类之间产生继承关系。
public class Game1SwordsMan extends Game1Role {
public void fight(){
System.out.println("挥剑攻击");
}
}
多态:单一接口操作多种类型的对象。
is-a关系定义:子类只能继承一个父类,“是一种”关系。
public class RPG {
public static void main(String[] args) { SwordsMan swordsMan = new SwordsMan();
swordsMan.setName("Justin");
swordsMan.setLevel(1);
swordsMan.setBlood(200); Magician magician = new Magician();
magician.setName("Monica");
magician.setLevel(1);
magician.setBlood(100); showBlood(swordsMan);
showBlood(swordsMan); } static void showBlood(Role role) {
System.out.printf("%s 血量 %d%n", role.getName(), role.getBlood());
}
}
在showBlood()方法中,通过Role类型既可以操作SwordsMan对象,也可以操作Magician对象,这就是多态。
重新定义:在继承父类之后,定义与父类中相同的方法部署,但执行内容不同。
public class RPG3
{
public static void main(String[] args)
{
SwordsMan swordsMan = new SwordsMan();
swordsMan.setName("Justin");
swordsMan.setLevel(1);
swordsMan.setBlood(200); Magician magician = new Magician();
magician.setName("Monica");
magician.setLevel(1);
magician.setBlood(100); drawFight(swordsMan);
drawFight(magician); }
static void drawFight(Role role)
{
System.out.print(role.getName());
role.fight();
}
}
抽象方法:如果某方法区块中真的没有任何程序代码操作,可以使用abstract表示该方法为抽象方法,不用撰写{ }区块,直接“;”结束即可。
含有抽象方法的类,一定要在class前标示abstract;子类如果继承抽象类,意识继续标示abstract,另一种就是操作方法。
继承语法的细节
super关键字表示父类的意思。this变量代表对象本身。即super()和this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。
调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super()。
public class OceanWorld1Anemonefish extends OceanWorld1Fish {
public OceanWorld1Anemonefish(String name) {
super(name);
}
@Override
public void swim() {
System.out.printf("小丑鱼 %s 游泳%n", name);
}
}
第七章 接口与多态
接口:可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成。
接口的定义格式:接口的数据成员,只允许被public, static, final修饰。
接口的方法成员,只允许被public, abstract修饰。接口中的数据成员都为static final类型,必须进行初始化,且接口的数据成员的值不能被修改,允许省略static, final关键字。接口中的方法必须是“抽象方法”,不能有方法体,允许省略public及abstract关键字
接口的实现:
接口不能用new运算符直接产生对象,必须利用其特性设计新的类,再用新类来创建对象
与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口。接口的继承:接口不能继承一个抽象类,却可以通过extends同时继承于多个接口。
import static java.lang.System.out;
public class EnumGame {
public static void main(String[] args) {
play(EnumAction.RIGHT);
play(EnumAction.UP);
}
public static void play(EnumAction action) {
switch (action) {
case STOP:
out.println("播放停止动画");
break;
case RIGHT:
out.println("播放向右动画");
break;
case LEFT:
out.println("播放向左动画");
break;
case UP:
out.println("播放向上动画");
break;
case DOWN:
out.println("播放向下动画");
break;
}
}
}
教材学习中的问题和解决过程
代码调试中的问题和解决过程
本周代码托管截图

其他(感悟、思考等,可选)
java学习是一条长久的道路,有坎坷,也有解决问题的喜悦。这一周主要学习了六七章节的内容,首先主要是一个RPG、SwordsMan这两个程序,但其不仅仅是一个程序,是多个程序继承在一起才能运行,我们正一步一步在添砖加瓦,使程序日趋完善,功能越发强大。这周的学习让我体会到java语言功能的多样,操作接口、继承类,有时相同的问题可以有不同的方法解决,就需要多学习,选择效率高、准确度高的方法来解决问题。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 200/400 | 1/3 | 18/38 | |
| 第三周 | 200/600 | 1/4 | 22/60 | |
| 第四周 | 200/800 | 1/5 | 30/90 |
参考资料
20145101《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 ...
随机推荐
- 如何写好PPT
怎样写好ppt? 阿里巴巴矢量图标库 优品PPT SmartArt PPT美化大师
- Oracle Function:TO_CHAR
Description The Oracle/PLSQL TO_CHAR function converts a number or date to a string.将数字转换为日期或字符串 Syn ...
- JAVA 的wait(), notify()与synchronized同步机制
转自:http://blog.csdn.net/zyplus/article/details/6672775 在JAVA中,是没有类似于PV操作.进程互斥等相关的方法的.JAVA的进程同步是通过syn ...
- 网页设计师必知的10则SEO
如今,Web设计师在设计Web外观与风格的同时,往往还负责了前端代码的编写.换???话说,SEO的相当一部分责任是落在他们肩上的.然而,大 量的 Web设计师对SEO的熟悉程度仍不足以让他们写出一个符 ...
- 洛谷P4424 寻宝游戏 [HNOI/AHOI2018]
正解:思维题 解题报告: 传送门! 这题就是很思维题,,,想到辣实现麻油特别难,但难想到是真的TT 这题主要是要发现一个性质:&1无意义,&0相当于赋值为0,|1无意义,|1相当于赋值 ...
- ChinaTest测试感悟
这次去北京参加ChinaTest大会,听了各位大师和同行的心得和感悟,收获颇多.很喜欢这样的大会,可以听到测试的各种声音各种观点.当没有对错时,需要思考的就是怎样采取最适合当前环境的策略.言归正传,谈 ...
- webpack笔记一
gulp和grunt都以task来运行不同的命令,而看webpack相关文档都是webpack都是module.下面是一个简单的demo 一.目录解构 二.webpack.config.js文件 co ...
- eclipse spket插件 错误 Syntax error on token "(", FunctionExpressionHeader expected after this
在myEclipse抵抗了两个小时后,终于被spket插件搞上了.其实上学期自己也学过Ext.js,哈哈..慕名而来的. 但当时功力不足,不得以要停止修炼.可现在不同,java的基础和j2ee的ssh ...
- Win10系统 Eclipse 下'Publishing to Tomcat'has encountered a problem解决办法
首先贴出来错误: 详情为:Publishing failedCould not publish to the server.There were issues during deployment to ...
- 日期 date +%F-%T-%N
date +%F-%T-%N 2016-03-24-14:40:13-997433641 %% a literal % %a locale's abbreviated weekday nam ...