教材学习内容总结
翻开第六章的书,发现书中的例子居然是“假设我正在开发一款rpg游戏”
public class Magician extends Role
{
public void fight()
{
System.out.println("魔法攻击");
}
public void cure()
{
System.out.println("魔法治疗");
}
}
public class SwordsMan extends Role
{
public void fight()
{
System.out.println("挥剑攻击");
}
}
通过这些实际的例子确实提高了我看下去的兴趣。在 java中也存在着“爹”和“孩子”的概念,我们称之为父类与子类。如果有更多类具有重复的程序代码,那就要修改更多类,造成维护上的不便。改进的方法可以把相同的程序代码提升为父类。
教材学习中的问题和解决过程
在java中,子类只能继承一个父类(和我们一样),继承除了可避免类间重复的行为定义外,还有个重要的is-a关系(是一种)
java中3个权限关键字:public,protected,private。但是却有四个权限范围,因为没有定义权限关键字,默认就是包范围。权限关键字与权限范围的关系如老师所发的下表所示
下面这个例子是书中所举的修改后的例子。这个类的定义不完整print()等都是抽象方法,所以如何显示输出,取得用户输入就不能操作。虽然是抽象方法,但在go()方法中,还是可以调用。
public abstract 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 abstract void print(String text);
public abstract int nextInt();
}
public class Ocean {
public static void main(String[] args) {
doSwim(new Ugly("尼莫"));
doSwim(new Shark("兰尼"));
doSwim(new Human("贾斯汀"));
doSwim(new Submarine("黄色一号"));
}
static void doSwim(Swimmer swimmer){
swimmer.swim();
}
}
本周代码托管截图
其他(感悟、思考等,可选)
本周因为要考计算机二级所以重点复习了C语言,对java的理解学习相对减少了一些。虽然敲了很多代码但是理解方面还是不透彻。譬如说让我自己编写根本就不能写出来一个能运用这几章的知识并能够顺利运行的程序。还是需要多敲代码多思考吧,希望下周事情没有这么多,能腾出一些时间给java的学习。
学习进度条
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 15/15 2/2 10/10
第二周 85/100 1/3 8/18
第三周 200/300 1/4 13/31
第四周 200/500 1/5 11/42