• 20175202 《Java程序设计》第四周学习总结


    20175202 《Java程序设计》第四周学习总结

    第五章学习内容

    1.子类的继承性:

    (1)子类与父类在同一包中的继承性:子类自然地继承了其父类中不是private的成员变量作为自己的成员变量。

    (2)子类与父类不在同一包中的继承性:子类只继承父类中的protected和public访问权限的成员变量作为子类的成员变量。

    注意:当protected类型的变量使用时,只需要变量所在的子类与父类在同一包中即可,例如:类D 是类A的子类B 的子类C 的子类,只需要类A和类D在同一包中即可。

    2.子类对象的特点:

           子类创建对象时似乎浪费了一些内存,因为当用子类创建对象时,父类的成员变量也都分配了内存空间,但只将其中一部分作为分配给子类对象的变量,例如,父类中的private成员变量尽管分配了内存空间,也不作为子类对象的变量,当然他们也不是父类某个对象的变量,因为我们根本就没有使用父类创建任何对象。这部分内存似乎成了垃圾一样。但是,实际情况并非如此,我们需注意到,子类中还有一部分方法是从父类继承的,这部分方法却可以操作这部分未继承的变量。

    3.instanceof运算符:

          instanceof运算符是Java独有的双目运算符,其左面的操作元是对象,右面的操作元是类,当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是true,否则是false。

    4.成员变量的隐藏和方法重写:

    (1)成员变量的隐藏:

    子类对象以及子类自己定义的方法操作与父类同名的成员变量是指子类重新声明的这个成员变量。

    子类对象仍然可以调用从父类继承的方法操作被子类隐藏的成员变量,也就是说,子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量。

    (2)方法重写:

           重写方法既可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其它方法,但无法操作被子类隐藏的成员变量和方法。如果子类想使用被隐藏的方法或成员变量,必须使用关键词super

           重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限(访问限制修饰符按访问权限从高到低的排列顺序是public、protected、友好的、private)。

    5.super关键字:

           当子类隐藏了继承的成员变量,子类的创建对象将不拥有该变量,变量将归super所拥有。

           同样,子类一旦隐藏了继承的方法,方法的调用将由关键字super负责。

    6.final关键字:

           final类不能被继承,可以修饰类、成员变量和方法中局部变量。如果用于修饰父类中的一个方法,那么这个方法不允许子类重写。用于修饰常量在运行期间不允许再发生变化。

    7.对象的上转型对象:

          上转型对象不能调用对象新增的变量和新增的方法,可以调用隐藏的变量,继承的变量,继承或重写的方法

          子类对象的上转型对象不能调用子类重写的父类的静态方法,只能调用父类的静态方法

    8.继承与多态:

    (1)继承:父类中的变量和方法被子类调用进行操作

    (2)多态:父类的方法被子类重写时,产生各自的功能行为

    9.关键字abstract:

           对于abstract方法,只允许声明,没有方法体。

           不允许用final和static修饰abstract类或方法。

           abstract类不能用new运算符创建对象。但该对象可以成为其子类对象的上转型对象调用子类重写的方法。

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

    (1)不理解extent的使用方法。

    解决方案:通过视频学习,发现画出原题来,会清晰很多。

    (2)对书上关于面向抽象编程(5.10)的解释不理解。

    解决方案:发现自己还是对概念不理解,也不理解编程思路和目的。通过仔细阅读书上的解释并结合视频讲解,对于这一块有了更清楚的理解。

    代码托管

    心得体会

      Java程序设计的课程特点和老师的授课方式要求我们花大把时间来进行自学,自己在前三周的学习中真的没有很用心。这次是我第一次花大把的时间投入java的学习,一下就发现了很多问题并开始乐在其中。自己比较习惯看书,但发现没有人讲解时,光靠自己的能力由很多概念很难理解。这周我利用了蓝墨云上发布的教学视频进行学习。感觉对自己的学习很有帮助,以后会有针对性多多观看这些教学视频。我希望自己以后发现问题后不要急于问其他人,而是通过冷静下来再仔细看书,浏览视频,争取自己来解决问题。同时,这一周我还有了自己的结对伙伴,我们对java的掌握还都比较差,希望我们可以互相督促学习,共同进步。

    上周错题总结

    1.下列关于构造方法的叙述,正确的是

    A.创建一个对象包括对象的声明和为对象分配变量两个步骤。

    B.使用Student stu;声明对象变量后,stu的内存中还没有任何数据

    C.引用型成员变量的默认初值为0

    D.对象的引用存在堆中,对象的实体(分配给对象的变量)存在栈中

    E.String a=“ab”+“cd”;创建了3个对象

    正确答案:CD 
    所选答案:C

    解析:4.3.2节。D:对象的引用存在栈中,对象的实体(分配给对象的变量)存在堆中。

    2.下列说法正确的是

    A.在一个类的内部可以直接调用本类的对象,也可以使用关键字this来调用。

    B.构造方法中使用this时,可以省略this,即将this.method()直接写成method()

    C.this不能出现在类方法中

    D.当实例成员变量的名字和局部变量的名字相同时,可以省略成员变量前的"this."和static变量前的"类名."

    正确答案:ABC 
    所选答案:C

    解析:4.9节。D:当实例成员变量的名字和局部变量的名字相同时,不能省略成员变量前的"this."和static变量前的"类名."。

  • 相关阅读:
    产品中常用理论
    Mac下配置环境变量
    Maven仓库
    深入理解Spring中的各种注解
    JAVA中简单字符串分割
    WARN: HHH000277: Could not bind factory to JNDI
    dos命令窗口下下java命令提示找不到或无法加载主类
    数组实用类:Arrays
    数组
    线程创建方式
  • 原文地址:https://www.cnblogs.com/gexvyang/p/10590596.html
Copyright © 2020-2023  润新知