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. DBA思考系列——凛冬将至,丧钟为谁而鸣!

    诸多迹象昭示着凛冬将至,大萧条终于正式在全国各地拉开了序幕,很多80后的国人没有经历过苦日子,也没有经历过真正的金融危机.这场经济危机必将摧毁一些无视经济能力,盲目购房,盲目消费的家庭或个人.个人对经 ...

  2. 比较器 comparable与comparator用法

    comparable 接口 Comparable<T> 类型参数:T - 可以与此对象进行比较的那些对象的类型 public interface Comparable<T> 此 ...

  3. sql server中嵌套事务*

    转自 https://www.cnblogs.com/guanjie20/archive/2013/02/17/2914488.html 我们在写事务时经常遇到的问题如下: 消息 266,级别 16, ...

  4. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  5. .NET MVC全局异常处理(二)

    目录 .NET MVC全局异常处理(二) MVC过滤器Filter .NET MVC全局异常处理(二) 对上节的内容进行了补充 MVC过滤器Filter MVC有四种过滤器:Authorization ...

  6. Redis操作list

    来自:http://www.cnblogs.com/alex3714/articles/6217453.html List操作,redis中的List在在内存中按照一个name对应一个List来存储. ...

  7. Python开发【第三篇】基本数据类型

    整型 int __author__ = 'Tang' # 将字符串转换为数字 a = " b = int(a) # 前面是0的数转换,默认base按照十进制 a = " b = i ...

  8. 入门 Webpack,一篇就够了

    阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本 ...

  9. SpringBoot四大神器之auto-configuration

    SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @Confi ...

  10. day17-异常处理

    今天的内容比较少,只是单独的异常处理 开始今日份整理 1.异常 定义:异常时错误发生的信号,一旦出错,并且程序没有处理这个错误,就会抛出异常,并且程序会运行中止 2.异常的分类 2.1语法错误:pyt ...