20175204 张湲祯 2018-2019-2《Java程序设计》第五周学习总结
教材学习内容总结
-第六章接口与实现要点:
-接口:
1.使用关键字interface定义接口。
2.接口体中只有抽象方法,且访问权限是public;只包含常量声明,且访问权限都是public。
3.定义格式:[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
-实现接口:
1.接口由类实现以便使用接口中的方法,在类的声明中使用implements声明该类实现一个或多个接口。
2.基本格式:[修饰符] class <类名> [extends 父类名] [implements 接口列表]{ }
3.非抽象类实现接口,必须重写接口的所有方法,类在重写接口方法时要去掉abstract修饰符,给出方法体,用public修饰。
4.关键字interface前加public关键字,该接口可以被任何一个类实现。
5.如果接口不加public修饰,为友好接口可以被与处在同一包中的类实现。
-接口回调:
1.接口属于引用型变量,但接口无法调用类中的其他的非接口方法。
-abstract类与接口比较:
1.abstract类和接口都可以有abstract方法。
2.abstract类中既可以有常量也可以有变量。
-教材学习中的问题和解决过程:
-1.问题: 在学习接口时,有点不清楚继承父类和实现接口二者之间的关系。
解决方案:因为抽象类的继承,Java只支持单继承,但多重继承可以通过接口来实现。而实现一个接口就是要实现该接口的所有的方法(抽象类除外);接口中的方法都是抽象的;多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。(https://627648914.iteye.com/blog/2106357)(https://www.zhihu.com/question/20111251/answer/14012223)
-代码调试中的问题和解决过程:
-1.问题:在编写第六章第4个例子时,发现输出是用的是printf语句而不是println,在运行时发现最后输出后没有换行;再改为println后显示编译错误,实际参数与形式参数列表长度不同。
解决方案:1.通过网上搜索(https://blog.csdn.net/qq_33271612/article/details/50700122)
2.得知Java中print、printf、println的区别:
print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。
println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。
printf是格式化输出的形式。
-代码托管(https://gitee.com/zyzgl/zyz)
-其他
在学习第六章内容后,越发感觉到每一章的内容都与前几章息息相关,由于前几章基础不牢,导致在学习理解这一章时还得返回上一张看类的继承,每通过一章的学习总能发现上一章学习的不足和漏洞;这周还完成了实验一的任务,感觉还是得自己编写代码带来的收获大,知道该怎么用基础语句;感觉自己还需多看视频学习,对以前的基础知识回看和运用。