学号 20175313 《Java程序设计》第五周学习总结

教材学习内容总结

第六章主要内容

  • 掌握接口的定义

    • 接口声明:interface 接口名
    • 接口体:包含常量的声明和抽象方法。
      • 接口体中只有常量没有变量(public、final、static)
      • 接口体中只有抽象方法没有普通方法(public、abstract)
  • 学会用implements关键字实现接口
    • 实现接口格式:class 类名 implements 接口名
    • 重写接口中的方法
      • 非抽象类:必须重写接口中的所有方法,并且用public修饰。
      • 抽象类:可以重写也可以直接继承。
  • 理解接口回调、多态
    • 接口回调:把可以实现接口的对象的引用赋给接口变量,使得该接口变量可以调用被类实现的接口方法。(类似子类的对象上转型对象)
    • 接口变量无法调用类中的其他的非接口方法。
    • 如果一个方法的参数是接口类型,那么将实现该接口的类的对象作为实参,就可以实现接口回调。
    • 接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在回调接口时就可能具有多种形态。

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

  • 问题1:

    将下列(A、B、C、D)哪个代码替换下列程序中的【代码】不会导致编译错误。

A、public int f(){return 100+M;}

B、int f(){return 100;}

C、public double f(){return 2.6;}

D、public abstract int f();

interface Com{
int M = 200;
int f();
}
class ImpCom implements Com{
【代码】
}
  • 问题1理解情况:

    • 接口中的抽象方法默认是public类,类在重写接口方法时不仅要去掉abstract修饰符,给出方法体,而且方法的访问权限一定要用public来修饰。
    • 对于非抽象类实现接口,必须重写接口中的所有方法。
  • 问题2:课后编程题。

  • 问题2解决方案:

    • Animal1.java
    interface Animal1{
    void cry();
    String getAnimalName();
    }
    • Dog1.java
    class Dog1 implements Animal1{
    public void cry(){
    System.out.println("汪汪汪……");
    }
    public String getAnimalName(){
    return "Dog";
    }
    }
    • Cat1.java
    class Cat1 implements Animal1{
    public void cry(){
    System.out.println("喵喵喵……");
    }
    public String getAnimalName(){
    return "Cat";
    }
    }
    • Simulator.java
    class Simulator1{
    void playSound(Animal1 animal){
    animal.cry();
    System.out.println(animal.getAnimalName());
    }
    }
    • ex4.java
    public class ex4{
    public static void main(String[] args) {
    //Animal1 an = new Dog1();
    //Animal1 ani = new Cat1();
    Simulator1 sim = new Simulator1();
    sim.playSound(new Dog1());
    sim.playSound(new Cat1()); }
    }
  • 运行结果截图:

代码托管

(https://gitee.com/xiannvyeye/test)



心得体会

第六章的内容也较少,有了上一周的教训,我周二就开始看了,时间上都还比较充裕,看的也比较透彻。我觉得这周的学习质量还是挺高的。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 13/13 1/4 23/23
第二周 317/330 1/5 22/45
第三周 703/1044 1/6 31/76
第四周 1263/2094 2/8 18/84
第五周 1263/2094 3/11 18/84
  • 计划学习时间:23小时

  • 实际学习时间:24小时

  • 改进情况:合理安排时间,充分利用碎片时间。

参考资料

《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. 20145213《Java程序设计》第九周学习总结

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

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

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

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

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

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

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

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

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

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

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

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

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

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

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

随机推荐

  1. 了解cron以及使用cron定时备份MySQL

    cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关闭这个服务: /sbin/service c ...

  2. Http url MVC Request Query Form 传参专贴

    一.工具区 [参考]postman中 form-data.x-www-form-urlencoded.raw.binary的区别--转 二..net MVC 三..net WebForm 四.Java ...

  3. IIS 请求 超时设置

    asp.net 默认的 session state 模式是 in proc(进程内),数据是在网站的应用程序池里面保存的.这样在 web.config 设置的超时时间,是在应用程序池没有发生回收的基础 ...

  4. MySQL 5.7.14安装说明,解决服务无法启动

    http://jingyan.baidu.com/article/f54ae2fc0affca1e92b84999.html http://www.myexception.cn/mysql/51431 ...

  5. AES和RSA加解密的Python用法

    AES AES 是一种对称加密算法,用key对一段text加密,则用同一个key对密文解密, from Crypto import Random from Crypto.Hash import SHA ...

  6. Dubbo 分布式 日志 追踪

    使用dubbo分布式框架进行微服务的开发,一个大系统往往会被拆分成很多不同的子系统,并且子系统还会部署多台机器,当其中一个系统出问题了,查看日志十分麻烦. 所以需要一个固定的流程ID和机器ip地址等来 ...

  7. Qt编写视频监控画面分割界面(开源)

    其实qt应用在安防领域还是蛮多的,尤其是视频监控系统,但是网上几乎没有看到qt做的最基础的视频监控画面分割的demo,今天特意花几分钟提取出来,开源放出来.欢迎大家多多点赞!源码下载:点击打开链接 运 ...

  8. Spark学习之常用算子介绍

    1. reduceByKey reduceByKey的作用对像是(key, value)形式的rdd,而reduce有减少.压缩之意,reduceByKey的作用就是对相同key的数据进行处理,最终每 ...

  9. TimeUnit类中的sleep() 和Thread.sleep()

    TimeUnit是什么? TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段 ...

  10. [原]shell批量文件增删改前后缀

    改后缀 for files in `ls *`; do mv ${files} ${files}.bak; done 改后缀 rename .bak .bak2 * 去除后缀 for files in ...