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. Python+ITchart实现微信机器人对指定的朋友和群自动回复

    这里我主要用了3个机器人,可以切换. 1.图灵机器人  (傻的不行,一直在问别人问题,没有限制) http://www.tuling123.com 2.showApi上的图灵机器人 (感觉最聪明,可以 ...

  2. c/c++ 多线程 参数传递

    多线程 参数传递 1,值传递,拷贝一份新的给新的线程.线程1中有个int变量a,在线程1中启动线程2,参数是a的值,这时就会拷贝a,线程1和线程2不共享a. 2,引用传递,不拷贝一份新的给新的线程.线 ...

  3. python爬虫 | 一条高效的学习路径

    数据是创造和决策的原材料,高质量的数据都价值不菲.而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣.知乎:爬取优质答案,筛选出各话题下热门内容,探索用户的舆论导向. 淘宝 ...

  4. python3 str(字符串)

    __add__函数 (在后面追加字符串) s1 ='Hello' s2 = s1.__add__(' boy!') print(s2) #输出:Hello boy! __contains__(判断是否 ...

  5. 【PAT】B1018 锤子剪刀布

    抄的柳婼小姐姐的,感觉三个数求最大那里用的真棒 #include <stdio.h> int main() { int N; scanf("%d", &N); ...

  6. java多线程(死锁,lock接口,等待唤醒机制)

    一.Lock接口 常用方法 Lock提供了一个更加面对对象的锁,在该锁中提供了更多的操作锁的功能. 使用Lock接口,以及其中的lock()方法和unlock()方法替代同步,对电影院卖票案例中Tic ...

  7. 011_如何decode url及图片转为base64文本编码总结

    一.咱们经常会遇到浏览器给encode后的url,如何转换成咱们都能识别的url呢?很简单,talk is easy,Please show me your code,如下所示: (1)英文decod ...

  8. 0.[Andriod]之从零安装配置Android Studio并编写第一个Android App

    0. 所需的安装文件 笔者做了几年WP,近来对Android有点兴趣,尝试一下Android开发,废话不多说,直接进入主题,先安装开发环境,笔者的系统环境为windows8.1&x64. 安装 ...

  9. Jmeter的JDBC Request,sql参数化及返回值取值

    1.JDBC Request面板 Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字 ...

  10. 搭建suse11.4内网源服务器

    有外网的话 suse-test:~ # cat /proc/version Linux version 3.0.101-108.18-default (geeko@buildhost) (gcc ve ...