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

    教材学习内容总结

    6.1 何谓继承

    • 何谓继承 面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承,滥用继承而导致程序维护上的问题时有所闻。如何正确判断使用继承的时机,以及继承之后如何活用多态,是学习继承时的重点。:

    • 通过extends继承的父类可以是不加abstract关键字的普通类,也可以是加了abstract关键字的抽象类。继承普通类时可以覆写父类的方法,或者创建自己独有的方法,或者这两者都不使用。继承抽象类时,必须覆写抽象类中的全部抽象方法

    6.2

    • protected 被声明为 protected 的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取;Java中,有3个权限关键字,但实际上有4个权限范围,因为没有定义权限关键字,默认就是包范围。

    • 重新定义的细节 要注意,对于父类中的方法权限,只能扩大但不能缩小(即若原来成员为 public,则子类中重新定义时不可为 private 或 protected);在 Java中,如果想取得父类中的方法定义。可以在调用方法前,加上 super 关键字; static 方法属于类拥有,如果子类中定义了相同签署的 static 成员,该成员属于子类所有,而非重新定义, static 方法也没有多态。

    • 关键词final

    • final可以用于修饰变量、方法和类,表示被修饰的东西只能做一次初始化,之后不能发生改变

    • 当final修饰方法参变量时,表示方法中不会对参变量的值做修改

    • final修饰的静态成员变量必须在声明时或在静态初始化块中初始化

    • final修饰的方法在继承过程中不能被覆写

    • final修饰的类不能被其他类继承

    • final类没有子类,final类的成员方法不会被覆写,final类的成员变量却不一定是常变量象。

    7.1 何谓接口

    • 定义形式:interface interfaceName {…}
      ,成员方法默认为抽象的、公有的,成员属性默认为静态的、final修饰的,接口只是提供一种形式,具体的实现细节交由它的类完.由于接口不涉及具体的实现,因此在接口中的成员变量是静态常变量,默认为static和final修饰,类实现一个接口:class MyClass implements A, B, C {…}

    • 一个类可以实现多各个接口
      注意:虽然在接口中没有显式声明方法是公有的,但接口中默认的访问控制是公有的,而类中默认的访问控制是包内友好,所以必须在类中将这个方法用public修饰

    • 接口和抽象类的选择:

    1. Java中类之间不支持多继承,但类可以实现多个接口

    2. 若类需要包含一些方法的实现,必须实现为抽象类,其他情况两者皆可,优先选择使用接口,使程序更加易于扩展

    7.2 接口语法细节

    • 使用interface来定义抽象的行为外观,方法要声明为public abstract,无须且不能有操作。为了方便,也可以省略public abstract,编译程序会协助补齐。可以使用接口枚举常数,只能定义为public static final。为了方便,也可以省略public static final。
    • 接口可以继承别的接口,也可以同时继承两个以上的接口,也是使用extends关键字。
      enum语法可用于定义枚举常数,enum实际上定义了类,而enum中列举的常数实际上是public static final,无法撰写程序直接实例化枚举类型,因为构造函数权限设定为private,只有类中才可以实例化。

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

    • 不了解重载和覆盖的区别

    • 在百度和多方询问之后才得知:

      1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));
      2、不能通过访问权限、返回类型、抛出的异常进行重载;
      3、方法的异常类型和数目不会对重载造成影响;

    代码托管http://git.oschina.net/bestiisjava2017/gaoziyun20155311/tree/master/javadashabi/out/production/javadashabi?dir=1&filepath=javadashabi%2Fout%2Fproduction%2Fjavadashabi&oid=0e3cc2618a97058f2a9b77cd7d275b4923f03992&sha=a23d4f1061b5595c0ce40ecd7ce57e544962482c

    • 代码提交过程截图:
      • 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图

    上周考试错题总结

    1.“30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)。

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

      这周感觉学习比较吃力,抽象的东西越来越多,理解上难度也逐渐增加。如:对象、封装等概念,即使读了,也不能完全理解。也不能再吃C语言的老本,需要我投入更多的时间和精力,我需要更多的去展开去学习,不能仅仅局限在看书,码代码上,不懂的地方,我会先码着码,好先留存着问题,去与同学进行交流。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20 hello java
    第二周 300/500 2/4 18/38 流程控制
    第三周 500/1000 3/7 22/60 类与对象、封装
    第四周 300/1300 2/9 30/90 继承、接口
  • 相关阅读:
    Attach Files to Objects 将文件附加到对象
    Provide Several View Variants for End-Users 为最终用户提供多个视图变体
    Audit Object Changes 审核对象更改
    Toggle the WinForms Ribbon Interface 切换 WinForms 功能区界面
    Change Style of Navigation Items 更改导航项的样式
    Apply Grouping to List View Data 将分组应用于列表视图数据
    Choose the WinForms UI Type 选择 WinForms UI 类型
    Filter List Views 筛选器列表视图
    Make a List View Editable 使列表视图可编辑
    Add a Preview to a List View将预览添加到列表视图
  • 原文地址:https://www.cnblogs.com/gaoziyun11/p/6582141.html
Copyright © 2011-2022 走看看