5

1. 本章学习总结

今天主要学习了三个知识点

  • 封装
  • 继承
  • 多态

2. 书面作业

1. 代码阅读:Child压缩包内源代码

1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误。并分析输出结果。

答:不能,语句System.out.println(i);中的i会出现错误,子类child文件继承父类parent,在parent文件中语句private int i=1i是私有的,必须改成protected,方可执行。
执行结果:

1.2 另外一个包中的OutOfParentPackage.java,能否编译通过?提示什么错误?分析原因。如何更改才能使之正常编译?

答:不能。
会出现以下错误:


需要将parent文件中的protected int j=2 protected int geti()改为public int j=2; public int geti()才能正常编译。

2. abstract进阶:阅读GuessGame抽象类的设计与使用源代码
2.1 Guess改造前代码很简单,而改造后的代码使用了抽象类、抽象方法看起来很复杂,那这样的改造到底有什么好处呢?

答:改造前,未使用抽象类,只能控制台输出;改造后,使用了抽象类,既可以在控制台输出,也可以使用对话框图形界面等输入。

2.2 如果想将该游戏改造成图形界面,应该进行一些什么操作?

答:本题参考 Java论文 猜字游戏的实现 界面设计上,至少要有三部分来实现,一个输入,一个人提示,一个判断大小。

2.3 结合该例子,你觉得什么时候应该使用abstract?

答:
abstract类定义:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类叫抽象类。
使用:分析问题时仅有大体的框架,没有具体的方法,这时候就需要使用abstract类。
例子:猜字游戏中我们大体上知道,父类Guessgame需要有随机print数字、输入数字等方法。子类ConsoleGame有具体的方法。这时候就使用到了abstract。

2.4 重要:在这个例子中,变化的是什么,不变的是什么?尝试结合abstract、继承等概念进行说明。

答:这个例子中,生成的数字是变化的,而且是随机的,但是对数字处理的方法是不变的。父类GuessGame使用abstract,

参考资料:

底下的是我从百度搜索得到的结果

Q3. 编写代码

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("hi");
    }
}

3. PTA实验总结及码云上代码提交记录

3.1本周Commit历史截图

在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图,如下图所示

3.2 实验总结

实验碰到的问题、思考、收获与解决方案
底下是一个表格

id 姓名
1 张三
2 李四

4. 其他的一些题目,如特别加分的实验题目、小任务、自己用Java做的一些小东西(可选,加分)


例子结束

posted @ 2017-03-22 17:27  Min21  阅读(159)  评论(0编辑  收藏  举报