20145122 《Java程序设计》第4周学习总结
教材学习内容总结
第六章
1.在java中,子类只能继承一个父类。
2.在java中,继承时使用extends关键字,private成员也会被继承。
3.检查多态语法逻辑是否正确,方式是从=号右边往左读。
4.以抽象讲法解释多态,就是使用单一接口操作多种类型的对象。
5.如果某方法区块中没有任何程序代码操作,可以使用abstract标示该方法为抽象方法,该方法不用撰写{}区块,直接“;”结束即可。
6.定义不完整的类不能用来生成实例。
7.被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
8.java中有public,protected与private三个权限关键字,但是实际上有四个权限范围。
9.想取得父类中的方法定义,可以在调用方法前加上super关键字;对于父类中的方法权限,只能扩大但不能缩小
10.如果想执行父类中某构造函数,可以使用super()指定。this()与super()只能选择一个调用,而且一定要在构造函数第一行执行。
11.如果class之前使用final关键字定义,表示类是最后一个,不会再有子类,不能被继承;定义方法时表示最后一次,子类不可以重新定义final方法
12.如果定义类没有使用extends关键字继承任何类,一定是继承java.lang.Object;在java中,任何类追溯至最上层父类,一定就是java.lang.Object。
第七章
1.对于“定义行为”,可以使用interface关键字定义,接口中的方法不能操作,直接标示为abstract,而且一定是public。
2.类要接口操作,必须使用implements关键字。
3.操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法,二是再度将该方法标示为abstract.
4.类可以操作两个以上的类,也就是拥有两种以上的行为。类可以同时继承某个类,并操作某些接口。
5.enum可用于定义枚举常数,继承自java.lan.Enum。
教材学习中的问题和解决过程
刚开始还不是很理解本章内容,具体不知道怎么实践,代码运行老是出错。后来试着在NetBeans上新建几个类java文件定义子类继承父类之后问题便得到了解决。
P159的Role父类代码
package rpg;
public class Role {
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;
}
}
然后分别定义了Magician和SwordsMan继承Role类。
package rpg;
public class Magician extends Role {
public void fight() {
System.out.println("魔法攻击");
}
public void cure() {
System.out.println("魔法治疗");
}
}
package rpg;
public class SwordsMan extends Role {
public void fight() {
System.out.println("挥剑攻击");
}
}
最终将RPG运行得到结果。
package rpg;
public class RPG {
public static void main(String[] args) {
demoSwordsMan();
demoMagician();
}
static void demoSwordsMan() {
SwordsMan swordsMan = new SwordsMan();
swordsMan.setName("Justin");
swordsMan.setLevel(1);
swordsMan.setBlood(200);
System.out.printf("劍士:(%s, %d, %d)%n", swordsMan.getName(),
swordsMan.getLevel(), swordsMan.getBlood());
}
static void demoMagician() {
Magician magician = new Magician();
magician.setName("Monica");
magician.setLevel(1);
magician.setBlood(100);
System.out.printf("魔法師:(%s, %d, %d)%n", magician.getName(),
magician.getLevel(), magician.getBlood());
}
}

P201代码学会用接口定义行为,并且成功运行了。
package ocean;
public class Anemonefish extends Fish {
public Anemonefish(String name) {
super(name);
}
@Override
public void swim() {
System.out.printf("小丑鱼 %s 游泳%n", name);
}
}
package ocean;
public abstract class Fish implements Swimmer {
protected String name;
public Fish(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public abstract void swim();
}
package ocean;
public class Human implements Swimmer {
private String name;
public Human(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public void swim() {
System.out.printf("人类 %s 游泳%n", name);
}
}
package ocean;
public class Piranha extends Fish {
public Piranha(String name) {
super(name);
}
@Override
public void swim() {
System.out.printf("食人鱼 %s 游泳%n", name);
}
}
package ocean;
public class Shark extends Fish {
public Shark(String name) {
super(name);
}
@Override
public void swim() {
System.out.printf("鲨鱼 %s 游泳%n", name);
}
}
package ocean;
public class Submarine implements Swimmer {
private String name;
public Submarine(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public void swim() {
System.out.printf("潜水艇 %s 潜行%n", name);
}
}
package ocean;
public interface Swimmer {
public abstract void swim();
}
package ocean;
public class Ocean {
public static void main(String[] args) {
doSwim(new Anemonefish("尼莫"));
doSwim(new Shark("兰尼"));
doSwim(new Human("贾斯丁"));
doSwim(new Submarine("黄色一号"));
}
static void doSwim(Swimmer swimmer) {
swimmer.swim();
}
}
结果为

本周代码托管截图


其他(感悟、思考)
本周的学习任务很多,课本上的知识也很难一下子全部消化吸收,还是要看平时积少成多,实践为主。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 第一周 | 100/100 | 2/2 | 10/10 | |
| 第二周 | 150/250 | 1/3 | 10/20 | |
| 第三周 | 100/350 | 1/4 | 10/30 | |
| 第四周 | 320/670 | 1/5 | 30/60 |
20145122 《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 ...
随机推荐
- PyQt4文件对话框QFileDialog
文件对话框允许用户选择文件或文件夹,被选择的文件可进行读或写操作. #!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 im ...
- 图解利用vmware工具进行虚拟机克隆
在vmware上创建一台完整的虚拟机,在该创建的虚拟机上进行克隆,先关闭创建的虚拟机,然后选中你要克隆的虚拟机,右击->管理->克隆,然后点击下一步,如下图所示: 2 然后点击下一步,如下 ...
- split()有个坑
刚才在做DBMS课程设计的时候遇到了一个以前遇到过的问题不过这次我没有一眼认出来,想了好一会才想起来. 就是在用split()方法来分割路径名字符串的时候,比如 String path = “E:\s ...
- 【黑金ZYNQ7000系列原创视频教程】04.熟悉ZYNQ内部中断——内部定时器中断实验
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36638&extra=page%3D1 爱奇艺地址: http: ...
- Cookie的介绍及使用
咱们不搞一开始就一大堆理论知识介绍,怕把人讲懵了...... 咱们换一个思维方式——"从现象看本质",先说说我们看到了什么,再从看到的现象中提出问题,最后深入寻找答案. 我们看到的 ...
- nexus使用方法
转自:https://www.cnblogs.com/grey-wolf/p/6481166.html centos7搭建nexus maven私服 前置条件: 1.安装jdk,可参考 http: ...
- 最小生成树的变形(次小生成树hdu4081)
hdu4081 Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- pandas将字段中的字符类型转化为时间类型,并设置为索引
假设目前已经引入了 pandas,同时也拥有 pandas 的 DataFrame 类型数据. import pandas as pd 数据集如下 df.head(3) date open close ...
- PHP搭建(windows64+apache2.4.7+mysql-5.6+php5.5+phpMyAdmin)和Discuz安装
以下文章参考的3个来源,在加上本人搭建过程中遇到的问题的修复完善笔记: <PHP环境的搭建和Discuz!安装> http://www.myxzy.com/post-386.html ht ...
- rbac - 初识
一.rbac 权限组件 1 项目与应用 一个项目,可以有多个应用 一个应用,可以在多个项目下 前提:应用是组件!! 2 什么是权限? 一个包含正则表达式url就是一个权限 who what how - ...