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。

代码调试中的问题和解决过程

  • 问题:
  1. 除了Test类,PC,CPU,HardDisk要实现多个构造方法,比如PC类要有PC(), PC(CPU cpu), PC(HardDisk HD), PC(CPU cpu, HardDisk HD)

  2. 除了Test类,PC,CPU,HardDisk要覆盖toString(), equals()方法

  3. 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程序设计》第五周学习总结的更多相关文章

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. Java程序设计第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...

  3. 20175314 《Java程序设计》第九周学习总结

    20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...

  4. 20175314 《Java程序设计》第二周学习总结

    20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...

  5. 20175314 《Java程序设计》第一周学习总结

    20175314 <Java程序设计>第一周学习总结   教材学习内容总结       除了学院统一购买的<Java 2 实用教程(第5版)>我还在网上买了一本<Head ...

  6. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  7. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  8. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  10. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

随机推荐

  1. CSS样式补充第二天

    #p1{/*        border-width: 1px;*/        /*边框实线*/        /*border-style: solid;*/        /*边框虚线*/   ...

  2. js中常用的内置对象

    Arguments 函数参数集合 arguments[ ] 函数参数的数组 Arguments 一个函数的参数和其他属性 Arguments.callee 当前正在运行的函数     Argument ...

  3. PythonStudy——列表的常用操作 List of common operations

    # 1.索引取值: 列表名[index] s1 = [1, 3, 2] print(s1[0]) print(s1[-1]) # 2.列表运算: 得到的是新list s2 = [1, 2, 3] pr ...

  4. R随机森林交叉验证 + 进度条

    library(data.table) library(randomForest) data <- iris str(data) #交叉验证,使用rf预测sepal.length k = 5 d ...

  5. 【转】利用Boost.Python将C++代码封装为Python模块

    用Boost.Python将C++代码封装为Python模块 一.     基础篇 借助Boost.Python库可以将C/C++代码方便.快捷地移植到python模块当中,实现对python模块的扩 ...

  6. ueditor的简单用法

    先粘贴未使用ueditor之前的代码: <body> <label for="input_content">作答区:</label> <t ...

  7. 更多FMK 的还是看万一的吧

    http://www.cnblogs.com/del/category/323943.html 记录一下, 作为目录

  8. ROS Qt Creator Plug-in wiki

    在Qt中配置ros工程. 环境: ubuntu16.04: ros kinetic: Qt5.7 参考网址: https://ros-industrial.github.io/ros_qtc_plug ...

  9. E212: Can't open file for writing Press ENTER or type command to continue

    E212: Can't open file for writing Press ENTER or type command to continue 出现这个错误的原因可能有两个: 1.当前用户的权限不 ...

  10. 开机自启动 centos 7

    开机自启动,写入必要的命令即可.vim /etc/rc.d/rc.local