20175314 《Java程序设计》第五周学习总结
20175314 《Java程序设计》第五周学习总结
教材学习内容总结
public接口可以被任意一个类实现,友好接口可被同一个包里的接口实现。
Java不支持多重继承,即一个类只能有一个父类;
为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口;
接口也可以通过extens来继承;
接口是抽象方法和常量值定义的集合,是一种特殊的抽象类;
接口中只包含常量和方法的定义,没有变量和方法的实现;
接口中的所有方法都是抽象的;
接口中成员的访问类型都是public;
接口中的变量默认使用public static final标识(可以在定义的时候不加此修饰,系统默认);
接口通过使用关键字interface来声明格式:interface 接口的名字,使用interface来定义一个接口。接口=接扣声明+接口体。接口体中只有常量(权限为public,且为static常量)和抽象方法(权限为public,为stract型),没有变量。
import语句可以引入包的类也可以引入包的接口。
通过类来实现接口:在类声明中使用关键字implements来声明一至多个接口。非抽象类实现了某个接口,一定要重写这个接口中的所有方法(要去掉abstract,体现public)。抽象类实现了某个接口,既可以重写,也可以不重写。
可以通过接口名来访问常量,也可以通过实现接口的类来直接使用。
接口回调:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。简单的说,接口回调就是为了能够调用某个接口中的方法。具体操作:类A实现接口B;A创建对象a;B声明变量b;b=a;
教材学习中的问题和解决过程
- 问题1:课后编程题类名与文件名不同。
- 问题1解决方案:把Application.java改为Example5_13.java或把类名改为Application。
接口中不能声明变量也不能定义非抽象方法;
接口中的变量不可以不指定初值;
可以在接口中只声明变量,不声明抽象方法;
允许接口只有一种抽象方法;
abstract和static不能同时出现;
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用。
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
代码调试中的问题和解决过程
- 问题:
除了Test类,PC,CPU,HardDisk要实现多个构造方法,比如PC类要有PC(), PC(CPU cpu), PC(HardDisk HD), PC(CPU cpu, HardDisk HD)
除了Test类,PC,CPU,HardDisk要覆盖toString(), equals()方法
Test类中要测试到所有类的toString(), equals()方法
代码托管
本周考试错题总结
错题1
原因:概念不清
理解情况:接口体中包含常量定义和方法定义两部分;接口体只进行方法的声明,不允许提供方法的实现;方法的定义没有方法体,且用分号结尾。
错题2
原因:概念不清
理解情况:
1、接口是可以被接口继承的,即通过关键字extends声明一个接口是另一个接口的子接口。由于接口中的方法和常量都是public,子接口将继承父接口中的全部方法和常量。2、抽象类可以实现接口,当一个类声明实现一个接口而没有实现接口中所有的方法,那么这个必须是抽象类,即abstract类。
3、抽象类是可以继承实体类。
心得体会
本周章节课本上例题较少,内容上与上一章有很多衔接,但还是感觉学习较为艰难,因为涉及到了很多文件的内容,需要记下来的一些流的用法也不少。本周正式开始操作实验,开始使用IDEA,我现在对后来的Android开发实验很是期待希望能够编写自己的app出来,兴趣是最好的老师相信自己通过努力一定可以做到。
学习进度条
代码行数 | 博客量 | 学习时间 | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 16篇 | 320小时 | |
第一周 | 51/100 | 1/1 | 12/20 | 基本掌握了Linux的简单指令 |
第二周 | 173/200 | 1/1 | 18/20 | 学习了Java重要基本语法 |
第三周 | 672/800 | 1/1 | 18/20 | 学习了包含多个类的Java程序及类的包机制 |
第四周 | 436/600 | 1/1 | 12/20 | 学习程序父类和子类的继承规则 |
第五周 | 573/600 | 1/1 | 10/20 | 学习通过类来实现接口和接口回调 |
计划学习时间:20小时
实际学习时间:10小时
参考资料
20175314 《Java程序设计》第五周学习总结的更多相关文章
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- Java程序设计第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...
- 20175314 《Java程序设计》第九周学习总结
20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...
- 20175314 《Java程序设计》第二周学习总结
20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...
- 20175314 《Java程序设计》第一周学习总结
20175314 <Java程序设计>第一周学习总结 教材学习内容总结 除了学院统一购买的<Java 2 实用教程(第5版)>我还在网上买了一本<Head ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
随机推荐
- hello1源码解析
1.选择hello1文件夹并单击“打开项目” 2.展开网页节点,双击index.xhtml文件在编辑器中查看它 index.xhtml文件是facelets应用程序的默认登录页,在典型的facelet ...
- URI,url简介
URI,URL是什么? URI :Uniform Resource Identifier,统一资源标识符: URL:Uniform Resource Locator,统一资源定位符: URN:Unif ...
- 基于 Jenkins 构建持续集成任务
1.1 Jenkins 配置使用心得 我是在windows10上安装的,安装过程很简单,从官网上下载下来msi安装包,双击执行就好了.安装程序完成后会自动打开http://localhost:8080 ...
- LeetCode - Word Subsets
We are given two arrays A and B of words. Each word is a string of lowercase letters. Now, say that ...
- 【转】python两个 list 获取交集,并集,差集的方法
1. 获取两个list 的交集: #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for val in a if val in b] print tmp #[2, 5] ...
- 迅雷磁力链接转BT种子工具
种子文件目录:C:\Users\jifeng\AppData\Local\Temp\magnetex MagnetEx.exe 从迅雷5.8支持磁力链接的无视受限资源版提取 MagnetEx.exe ...
- laravel5.5 excel扩展包的安装和使用
(文章引用来源 http://www.cnblogs.com/djwhome/p/9322112.html 有自己的补充用于记录) (在此次项目中,本人亲自尝试,标题中文无论如何转换(GBK.gb ...
- bzoj5049: 导航系统
Description 小Q来到了一个随机的国度.这个国度由n座城市和m条双向道路构成.因为这个国度崇尚随机,因此m条边是用随机 选择两端点的方式生成的.充满好奇的小Q想在这里进行k次随机的旅行,每次 ...
- iOS ReactiveCocoa的使用
一.ReactiveCocoa简介 reactiveCocoa简称RAC,它是一个三方框架,很多人把它叫做函数响应式编程框架,因为它具有函数式编程和响应式编程的特性. 由于该框架的编程思想,使得它具有 ...
- Maven私服(Nexus)资源上传下载
1.settings.xml (向私服上传资源需要) <!-- Snapshot包的管理/Releases包的管理/第三方包管理--> <server> <id>l ...