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

教材知识点总结

1.子类和父类:

子类的继承性:子类与父类在同一包中——子类继承父类中不是private的变量

       子类与父类不在同一包中——子类继承父类中不是private和友好类的变量

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

2.子类对象:

当子类对象中声明的成员变量被分配内存空间时,父类中的变量(包括private类和子类中没有使用的)都被赋予了内存空间。

3.instanceof运算符:

格式:对象   instanceof   类(子类)

4.隐藏与重写:

  • 继承:当子类声明的成员变量与父类继承的成员变量名字相同时(类型可以不相同),被继承的成员变量会被隐藏
  • 方法重写:子类中定义的类型和父类一致或者是父类的子类型;重写时要注意方法的名字、参数个数和参数类型要与父类方法相同,但参数可以不同;
  • 重写目的:将父类中状态和行为改变为自身的
  • 重写时不可以降低方法的访问权限

5.super关键字作用:

  • 操作被子类隐藏的成员变量或方法
  • 在子类的构造方法中调用父类的构造方法,原因:子类不继承父类的构造方法。

6.final关键字:

final关键字修饰类、成员变量和方法中的局部变量;当final修饰类时,该类不能被继承;final修饰方法时,该方法不允许被子类重写;final修饰变量时,该量为常量

final不能与abstract同时修饰一个类

7.上转型对象:

  • 上转型对象不能调用对象新增的变量和新增的方法,可以调用隐藏的变量,继承的变量,继承或重写的方法
  • 子类对象的上转型对象不能调用子类重写的父类的静态方法,只能调用父类的静态方法

8.继承与多态:

  • 继承:父类中的变量和方法被子类调用进行操作
  • 多态:父类的方法被子类重写时,产生各自的功能行为

9.关键字abstract:

  • abstract类中有无abstract方法均可,非abstract中不能有abstract方法
  • abstract类不能用new运算符创建对象,其子类必须重写父类的abstract方法,给出方法体
  • abstract类中只是封装了要求,对于要求的具体内同应在子类中具体给出

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

问题1:对于super关键字的第二个用法的功能不是很理解

解决方案:首先在蓝墨云中观看了相关的讲解,之后对书上例子8中的程序按照视频资源上讲述的方法进行修改,分别删去了父类中的空构造方法和子类中的super(number,name) 语句进行编译,观察编译的结果的不同。super在调用父类的构造方法是默认调用的是父类中不带参数的构造方法,因此在编写程序时应注意在父类中编写一个不带参数的构造方法避免出现错误。

问题2:对于5.10节中的面向抽象编程理解有一些困难,对于书上的例子理解的也不是很明白

解决方案:这个问题主要原因是并不理解设计这类问题的主要思路,单靠自己看书理解比较花费时间,因此我选择在观看视频的讲解,在观看的同时按照视频中画图的方法将问题转化为图形解决,发现对于自己很有帮助,理解起来也更加清晰容易

问题3:第五章课后题4在IDEA中编译时无法找到对应的文件

解决方案:开始以为是自己的程序中的某个环节书写错误导致找不到对应文件,后来发现主类中忘记编写public static void main(String args[ ])语句

代码托管

心得体会

  Java这门课大部分以自学为主,因此在学习过程中需要大量的耐心和时间,我觉得蓝墨云中发布的视频资源对于学习有非常好的帮助,书上的相关问题在其中都可以得到解答,其余问题在班课中也可以进行讨论,这对于我解决问题开辟了一条新的路径。第五章的内容虽然没有第四章多,但我觉得难度有明显提升,这主要是指在理解方面,程序开始变得多样复杂,需要有清晰的思路去理解,尤其是在调用和返回这一方面。在完成课后习题时也发现了一些问题,虽然理解了书上的内容但实际上手时还存在困难。课后的编程题,单独的一个类拿出编写时很好完成,但是在类与类的衔接即主类的写法上就需要时间理清思路,否则会像我在第一次编写时,期待的和事实上得到的结果会有很大差距。本章在我看来除了书本上的知识点外还要学会构建框架,这对于面向抽象编程是十分关键的。

上周错题总结

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

A.当程序用类创建对象时,需使用它的构造方法。
B.类中的构造方法的名字必须与该类的名字完全相同,而且没有类型。
C.如果类中定义一个或多个构造方法,则默认为无参数的构造方法。
D.带有返回值的方法一定不是构造方法。
E.允许在一个类中编写若干个构造方法,但参数必须不同。
正确答案: A B D E

你的答案: A B C E

解析:P58 4.3.1节。C项:C.如果类中定义一个或多个构造方法,则Java不提供默认的构造方法。

20175209 《Java程序设计》第四周学习总结的更多相关文章

  1. Java程序设计第四周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...

  2. 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结

    <面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...

  3. 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...

  5. 20155318 2016-2017-2 《Java程序设计》第九学习总结

    20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...

  6. 《Java程序设计》第二学习总结

    <Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...

  7. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  8. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  9. 20145120黄玄曦 《java程序设计》 寒假学习总结

    1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...

  10. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

随机推荐

  1. 6.2Python数据处理篇之pandas学习系列(二)Series数据类型

    目录 目录 (一)Series的组成 (二)Series的创建 1.从标量中创建Series数据 2.从列表中创建Series数据 3.从字典中创建Series数据 4.从ndarry中创建Serie ...

  2. webstorm 的 .后缀名-tab快捷键

    if (key) {}//key.if tab if (!key) {}//key.else tab if (key != null) {}//key.notnull tab if (typeof k ...

  3. 3星|《HBO的内容战略》:HBO与美国电视业大事记

    HBO的内容战略 基本是HBO与美国电视业的大事记.从电视的诞生讲起.HBO在1972年首播,1975年做出一个当时惊世骇俗的决定:勇卫星实时向全美发送信号,随即成为覆盖全国的电视台:80年代受到录像 ...

  4. C语言----int (*p)[4] ---思考总结

    a+1  跳4个int (*a)+1 跳一个int

  5. 第五节 matplotlib库

    一.Matplotlib基础知识 1.1Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y ...

  6. 【Linux基础】iconv命令详解(编码转换)

    对于给定文件把它的内容从一种编码转换成另一种编码. iconv -f GBK -t UTF- file1 -o file2 //将GBK转换为UTF8,输出到file2.没-o那么会输出到标准输出 i ...

  7. DEV SIT UAT PET SIM PRD PROD常见环境英文缩写含义

    英文缩写 英文 中文 DEV development 开发 SIT System Integrate Test 系统整合测试(内测) UAT User Acceptance Test 用户验收测试 P ...

  8. 好程序员分享DIV+CSS3和html5+CSS3有什么区别

    DIV+CSS3和html5+CSS3有什么区别,不管是DIV+CSS3还是html5+CSS3,他们都是我们对网页开发布局方式的统称,但是DIV+CSS3作为网页的基础开发这句话其实并不严谨,因为而 ...

  9. springMVC第二天——高级参数绑定与其它特性

    大纲摘要: 1.高级参数绑定 a) 数组类型的参数绑定 b) List类型的绑定 2.@RequestMapping注解的使用 3.Controller方法返回值 4.Springmvc中异常处理 5 ...

  10. [详细实例]MicroPython拼插编程实战:DIY一台会思考的壁障车

    (转载请注明文章来源,更多教程可自助参考www.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇) 在日常生活中,大家会经常见到各种各样的遥控车,它需 ...