zoukankan      html  css  js  c++  java
  • 20155315 2016-2017-2 《Java程序设计》第四周学习总结

    教材学习内容总结

    1.继承与多态

    • Java中只有单一继承,也就是只能有一个父类;
    • 多态即指一个父类可由多个子类继承。

    继承可以复用代码,更大的用处是实现「多态」。
    封装是继承的基础,继承是多态的基础

    也就是说,多态与继承的结构就相当于是一个树形图。父类是结点而子类是树叶。

    2.覆盖与重载

    • 覆盖:重写父类方法时返回值类型必须一致;权限只能往大了改,不能越改越小;
    • 重载:返回值及定义的类型和数量可以不一致;权限可修改;与覆盖一样方法的名称必须一致。

    3. super与this

    • super调用的是父类中的方法
    • thisthis表示当前对象,也就是当前类对象。

    4. 继承与接口

    • 继承强调“是一种”的关系,指的是某一种特定的类。尽管在程序编译的时候不会出错,但是逻辑上会有很大的误会。在接口中也能使用继承。
    • 接口是定义一种行为但不定义操作。接口操作有“拥有行为”的意思。

    5.匿名内部类与Lambda

    Lambda表达式是某些匿名内部类的简略写法,只能用来取代函数接口的简写。能够使用Lambda的依据是必须有相应的函数接口。

    6.Enum

    枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。enum定义了类,这其中列举的常熟实际上是public static final,是枚举类型实例,无法撰写程序直接实例化枚举类型,只有类中可以实例化。

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

    问题1:Java中有抽象方法的类一定是抽象类,但抽象类中的方法不一定都是抽象方法。

    解决1:查找抽象类与抽象方法的关系,抽象类的特点是必须有abstract关键字修饰,不可以通过new来创建对象。在抽象类中,可以有非抽象方法。或者说,有抽象方法就是抽象类,但是在抽象类中可以定义其他方法,不过不能被实例化。

    问题2:接口与抽象类的区别

    解决2查找资料抽象类是继承的,一次只进行一种操作。拿书上的例子(P195)来看,鱼会游泳,定义Fish是抽象类,这之中就可以定义任何一种鱼作为Fish的子类,而人的话不属于Fish,不能用继承,这时候就要定义Swimmer接口,等待具体操作。

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

    问题1:
    程序1

    解决1:
    程序2
    protected是表示在继承关系中的访问权限的,所以它用来修饰那些被继承的方法和属性。外部类只有public和默认两种修饰符。修改顶层类权限,将protected删去,程序可以运行。

    问题2:
    程序3

    解决2:
    程序4依旧是权限修饰出现问题,修改权限为public,运行成功,输出99。

    代码托管

    • 用statistics脚本查看代码行数
    • 代码提交结果

    上周考试错题总结

    • 1.填空:Linux Bash中,(++grep++ )命令可以进行全文搜索。理解情况:在前几周的考试中,我通过错题和查找资料了解了find的用法,但是grep比较少接触到,因此这次题目出来之后,我上网查找了grep与find的区别。grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来;find在目录结构中搜索文件,并执行指定的操作。也就是说,grep是查找匹配条件的行,find是搜索匹配条件的文件。
    • 4.填空:System.out.println(“”+52+25);的结果是(++5225++)理解情况:在Java中,“+”即代表加法也代表连接。若输出引号在前,表示之后的数字是连接的关系;过输出引号在后,则表示之前的数字先相加再输出。
    • 13.CH04 填空:可以使用java.util.Arrays的(++fill()++)方法把数组初始化成相同的值。理解情况:fill()是一个填充数组的方法,若数组无初始值,就可用此方法初始化。
    • 19.CH04 填空:“30”转化为byte类型的30的语句是(++Byte.parseByte(“30”);++)。理解情况:使用“类型.parse类型(number)”将字符串剖析为基本类型。
    • 24.CH05 判断:Java中类总会有默认构造方法。(++X++)理解情况:只有编译程序自动加入的构造函数,才是默认构造函数;如果自行撰写了构造函数,编译程序就不会自动建立默认构造函数。因此,Java中类不总有默认构造方法。

    收获

    这周我通过老师的博客学习了用JDB调试程序。学习第6、第7章,发现这两章的学习主要还是概念的学习,尤其是继承、多态与接口的关系。将课后习题先自己做再编译,更加深了我的理解。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 20/20 1/1 10/10 安装了JDK、IDEA和Git,写了第一个Java程序
    第二周 97/117 2/3 20/30 用Linux上传代码,熟悉修改文件的命令行
    第三周 336/453 2/4 35/65 在Linux上安装JDK和IDEA,更熟悉vi的操作指令以及修改时需要注意的地方。
    第四周 851/1304 1/5 25/90 学习用JDB调试程序
    • 计划学习时间:20小时
    • 实际学习时间:25小时

    参考资料

  • 相关阅读:
    Mybaits的10种通用的写法
    你清楚这几个Spring常用注解吗?
    面试时如何介绍自己
    Spring加载加密的配置文件
    MySQL主从复制
    CentOS7安装和配置MySQL
    Druid监控页面配置与使用
    Shiro配置URL过滤
    基于注解的Dubbo服务配置
    Java中常用的加密算法小结
  • 原文地址:https://www.cnblogs.com/-zyl/p/6576994.html
Copyright © 2011-2022 走看看