20155201 2016-2017-2 《Java程序设计》第四周学习总结
20155201 2016-2017-2 《Java程序设计》第四周学习总结
教材学习内容总结
- 第六章要点:
- 继承:面向对象中,子类继承父类,避免重复的行为定义。继承基本上就是避免多个类重复定义共同行为。P158-159为剑士和魔法士定义类时出现共同的重复部分
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;
}
以上部分是重复部分,使用继承语句可以避免重复敲代码:
public class Swordsman extends Role{
...;
}
这句语句的意思是SwordsMan继承Role类。
- 抽象方法:如果某方法区块中真的没有任何程序代码操作,可以使用abstract标示该方法为抽象方法,该方法不用撰写{}区块,直接;结束即可。
public abstract class Role{
public abstract void fight();
}
- 将父类的类成员定义为public时,会完全开放成员的访问权限;如果只想让子类直接存取类成员,可以定义类成员为protected:
public class name{
protected String name1;
protected int name2;
}
被声明为protected类型的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。类中有成员被声明为protected后,IDEA中图标发生了变化。

权限关键字与范围:
| 关键字 | 类内部 | 相同包类 | 不同包类 |
|---|---|---|---|
| public | 可存取 | 可存取 | 可存取 |
| protected | 可存取 | 可存取 | 子类可存取 |
| 无 | 可存取 | 可存取 | 不可存取 |
| private | 可存取 | 不可存取 | 不可存取 |
- 如果想取得父类中的方法定义,可以在调用方法前,加上super关键字:
public String roString(){
return super.toString();
}
- 在Java中,子类只能继承一个父类,如果定义类时没有使用extends关键字指定继承任何类,那一定是继承java.lang.Object,相当于
puclic class name extends Object{
}
在Java中,任何类追溯至最上层父类,一定就是java.lang.Object,任何类型的对象,都“是一种”Object。
- 第七章要点
- 接口:书中例子:“所有东西”都会“游泳”,代表所有东西都可以拥有“游泳”,而不是某种东西专属,类似继承。定义方法如下:
public interface name{
public abstract void name2();
}
类中操作接口,使用implements关键字。操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法:
public class name3 extends name1 impelments name1{
...
}
二是再度将该方法标示为abstract:
public abstract class name3 implements name4{
...
}
- 在Java中,可使用interface来定义抽象的行为与外观,如接口中的方法可声明为public abstract :
public interface Swimmer{
public abstract void swim();
}
接口中的方法有操作时,一定得是公开且抽象,为了方便,你也可以省略public abstract:
public interface swimmer{
void main();
}
- 在interface中可以定义常数,java中经常见到在接口中定义这类常数,称为枚举常数。
教材学习中的问题和解决过程
- 6.4课后练习中第1、2题我认为应该是选B显示some Service,答案是C。
- 解决:

翻阅之前教材6.2.3再看构造函数内容,得到如下解释:如果子类构造函数中没有指定执行父类中哪个构造函数,默认会先调用父类中无参数构造函数。按照书上解释应该选父类中输出some service,但@Override书上的定义是“检查是否重新定义父类方法”,而我在网上查到的含义是重写函数,相当于与父类函数无关,这样答案选C就有理由了。还是望老师再解释下
。
- 教材P202页Airplane.java应该命名为Seaplane.java
代码调试中的问题和解决过程
- 在编写P186页ConsoleGame代码时,继承extends GuessGame时出现错误,应该是abstract定义权限问题。

最开始新建项目时我并没有选择在package下新建Java文件,所以我只好把GuessGame的abstract定义修改,如下:
public class GuessGame {
public void go(){
int number=(int) (Math.random()*10);
int guess;
do{
print("输入数字:");
guess=nextInt();
}while (guess!=number);
println("猜中了!");
}
public void println(String text){
print(text+"\n");
}
public void print(String text){
}
public int nextInt(){
return nextInt();
}
}
之后ConsoleGame成功运行,截图如下:
- P203页代码Ocean.java中飞鱼应该不仅游泳,还会飞,修改代码如下:
public class Ocean2 {
public static void main(String[] args) {
doSwim(new Seaplane("空军零号"));
doFly(new FlyingFish("甚平"));
}
static void doSwim(Swimmer swimmer){
swimmer.swim();
}
static void doFly(FlyingFish flyer){
flyer.fly();
flyer.swim();
}
}
代码托管
代码提交过程截图:
- 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图

- 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图
代码量截图:
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图

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

上周考试错题总结
- 填空:Linux Bash中,(grep )命令可以进行全文搜索。
- 判断: Java中,=与==并没有在基本类型和类类型的不同。(OK)
- 判断:Java中类总会有默认构造方法。(X)
- 填空:Java中类的成员变量必须进行初始化,否则会出语法错误。(X)
- 填空:Java中成员方法中引用成员变量,要使用(this)关键字。
- 填空:Java中方法参数只用(传值)调用。
感悟与思考
这周的学习任务是两章,代码也很多,不过有很多项目下重复的class文件,复制了一点偷懒,文件名都一样,也不会算进代码行。按照老师的要求细化了commit注释。Java学习已经到了第七章,我还是没法做到自己解决全部问题,希望再经过一段时间的学习,能做到没有疑问,或者是能自己解决疑惑。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 第四周 | 700/1408 | 1/1 | 18/18 |
计划学习时间:15小时
实际学习时间:18小时
参考资料
20155201 2016-2017-2 《Java程序设计》第四周学习总结的更多相关文章
- Java程序设计第四周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...
- 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈
对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...
- 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结
<面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...
- 20155318 2016-2017-2 《Java程序设计》第九学习总结
20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...
- 《Java程序设计》第二学习总结
<Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 20145120黄玄曦 《java程序设计》 寒假学习总结
1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
随机推荐
- poj_2752 kmp
题目大意 给定字符串S,求出S的所有可能相同前后缀的长度.比如: "alala"的前缀分别为{"a", "al", "ala&qu ...
- Ajax轮询——定时的通过Ajax查询服务端
概念:轮询(polling):客户端按规定时间定时向服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接. test.html //前端代码 <html> <h ...
- saltstack之syndic的配置
author: headsen chen date: 2018-08-04 22:22:09 1,架构 2,配置 2.1,配置master: yum -y install epel-relea ...
- LoadRunner 11 安装
下载地址:http://www.ddooo.com/softdown/61971.htm#dltab LoadRunner是一款专业级别的应用负载测试工具,它可以模拟上千万用户对企业应用进行真实的负载 ...
- svn-maven-tomcat自动发布脚本
#!/bin/sh #svn-maven-tomcat自动发布脚本 #变量设置 svnpath=svn://10.60.10.120/研发部/xx-maven svnusername=xxx svnp ...
- angularJS中的MVC思想?
mvc 思想: 将应用程序的组成,划分为三个部分:model , controller 和 view ; - 控制器的作用是用来初始化模型用的: - 模型就是用于存储数据的: - 视图是展示数据的: ...
- 用CMAKE编译配置的项目进行调试的方法
在Linux 下用CMAKE编译的项目进行Debug 需进行设置: 1.在未设置之前 进行调试可能会出现错误报告:No source available for ...等一系列错误,这些错误可能就是你 ...
- Linux配置Nginx,MySql,php-fpm开机启动的方法
一. Nginx 开机启动 1.在/etc/init.d/目录下创建脚本 vim /etc/init.d/nginx 2.编写脚本内容 (将以下复制进去相应改动安装路径) 1 2 3 4 5 6 7 ...
- yii2.0 如何按需加载并管理CSS样式及JS脚本
链接:http://www.yiichina.com/tutorial/399 (注:以下为Yii2.0高级应用测试) Yii2.0对于CSS/JS 管理,使用AssetBundle资源包类. 视图如 ...
- [转]CentOS 6.4下Squid代理服务器的安装与配置
一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用 ...