20175320 2018-2019-2 《Java程序设计》第5周学习总结

教材学习内容总结

  • 本周学习了教材的第六章的内容。在这章中介绍了接口与实现,着重讲了接口是如何定义并实现以及如何使用接口回调来实现多态,最后比较了抽象类和接口的区别并介绍了面向接口的编程思想。
  • 接口是一种重要的数据类型,接口变量存放的是引用型数据。
  • 接口定义分为两个部分,首先是接口声明,声明时使用关键字interface。其次是编写接口体,接口体包含常量的声明和抽象方法两部分。接口中的常量都是用publicstaticfinal关键字来修饰,其中以上三个关键字可以省略,抽象方法都是用publicabstract关键字来修饰,以上两个关键字可以省略。
  • 接口的实现需要关键字implements,如果要实现多个接口,可以用逗号隔开接口名。非抽象类一定要重写接口的方法,抽象类可以重写也可以直接拥有接口中的方法。
  • 程序可以通过接口名访问接口中的常量,也可以用实现接口的类在类体中直接直接使用接口的常量,接口通过回调可以使用实现接口的类重写的接口方法。
  • 接口属于引用型变量,接口变量中可以存放实现该接口的类的实例的引用。当接口变量调用被类实现的接口方法时,就是通知相应的对象调用这个方法。
  • 接口回调非常类似于上转型对象调用子类重写的方法,接口无法调用类中的其他非接口方法。
  • 接口可以抽象出重要的行为标准,接口在要求一些类有相同名称的方法的同时,并不强迫这些类具有相同的父类。
  • 由接口产生的多态就是指不同的类在实现同一个接口时能具有不同的实现方式。
  • 在面向接口的编程过程中,接口只关心操作,但不关心操作的具体实现细节,使用接口进行程序设计的核心思想是使用接口回调,即接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调类实现的接口方法。
  • 利用接口可以体现程序设计的”开-闭原则“,即对扩展开放,对修改关闭。

教材学习中的问题和解决过程

  • 问题1:看过教材后对接口回调的定义仍不是十分清楚。
  • 问题1解决方案:通过百度解决了问题,接口回调是指可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。
  • 问题2:是否可以在接口中只声明常量,不声明抽象方法。
  • 问题2解决方案:个人认为是不行的,但查找资料了解到,严格意义来说这样定义接口是可以的,但接口就失去意义了,我们使用接口就是要使用接口中的抽象方法,即接口中的行为标准。

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

  • 这周代码量较小,在调试过程中没有遇到错误。

代码托管

上周考试错题总结

  • 上周测试中无错题。

其他(感悟、思考等,可选)

接口和子类很相似,但同时也有着不同,接口是对类的行为标准的特殊要求,子类是父类对所有子类的统一要求。通过这一周的学习,我发现Java的学习一定要找相似内容的不同,这样才不会将不同的数据类型,方法,类进行混用。而Java的内容较多,一定要及时复习,多上手操作,以此加深自己的印象。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 852/3259 1/6 20/107

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

参考资料

20175320 2018-2019-2 《Java程序设计》第5周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

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

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

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. 关于Docker目录挂载的总结(转)

    关于Docker目录挂载的总结 Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过 ...

  2. C#/.NET基础视频[2018年][195集完]

    B站观看地址-无广告观看 https://www.bilibili.com/video/av21896829/ 前一两集 声音有点大 ,可以调大一点音量. 百度网盘下载地址 https://pan.b ...

  3. dagger2 重点笔记

    官方架构例子,里面有个dagger2的结合的例子 https://github.com/googlesamples/android-architecture https://google.github ...

  4. linux内核剖析(十)进程间通信之-信号量semaphore

    信号量 什么是信号量 信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有. 信号量的值为正的时候,说明它空闲.所测试的线程可以锁定而使用它.若为0,说明它被占用,测试的线 ...

  5. 整体C#与Sql培训内容及结构

    图如果看不清可以右键存图片到本地

  6. 恶心github 下载慢

    起因 某天看github上面的代码,有点不耐烦,想下载下来再看,但是现在速度慢的可怜 解决思路 相关网站 获取域名相关ip ipaddress.com 这个有好处就是知道网站部署在哪里,如果有vpn的 ...

  7. 关于asyncio知识(四)

    一.使用 asyncio 总结 最近在公司的一些项目中开始慢慢使用python 的asyncio, 使用的过程中也是各种踩坑,遇到的问题也不少,其中有一次是内存的问题,自己也整理了遇到的问题以及解决方 ...

  8. React Native 从入门到原理一

    React Native 从入门到原理一 React Native 是最近非常火的一个话题,介绍如何利用 React Native 进行开发的文章和书籍多如牛毛,但面向入门水平并介绍它工作原理的文章却 ...

  9. 8款基于Jquery的WEB前端动画特效

    1.超炫酷的30个jQuery按钮悬停动画 按钮插件是最常见的jQuery插件之一,因为它用途广泛,而且配置起来最为方便.今天我们要分享的是30个超炫酷的jQuery悬停按钮动画,当我们将鼠标滑过按钮 ...

  10. List分组

    IEnumerable<IGrouping<string, SysMap>> query = sysMapList.GroupBy(pet => pet.Mobile);