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

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

教材学习内容总结



每个子类只能有一个父类,而一个父类可以有多个子类。可以使用关键字extends来定义一个类的子类:class 子类名 extends 父类名。不加extends关键字时,默认为Object类,Object类是任何类(除了本身)的祖先类。简单的说,子类拥有父类的所有(除了private类及不同包的友好类),同时可以拥有自己新的东西。子类可以通过继承的方法来操作未继承的变量。父类的方法被子类重写时,可以各自产生自己的功能行为。
如果一个类A想通过一个其他类B的子类C创造对象来调用它的变量或者方法:

①若要调用的是子类C内部新定义的而不是继承的,只要C与A同包即可;
②若要调用的是C继承下来的,只要C所继承的祖先类与A同包即可。

instanceof运算符:除了之前在第二章总结的以外,还有:当子类创造的对象与父类去使用instanceof运算符时,得出的结果也是true。

当子类新声明的变量名与继承的变量名相同时,继承的变量名会被隐藏。但是我们仍可以通过继承的方法来对隐藏的变量名进行操作。(继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量。)

方法重写:要求新的方法的类型与父类相应方法一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父亲的方法完全相同。重写方法可以操作继承的变量、方法,也可以操作子类新声明的成员变量、方法。如果子类想要使用被隐藏的方法或者成员变量,需使用super。注意,重写方法时不允许降低方法的访问权限。

super的使用方法:通过命令super.[成员变量]和super.[方法]来分别使用被隐藏的变量和方法。在父类中定义多个构造方法时,应当包括一个不带参数的构造方法,这是因为如果在子类中没有写出super关键字,默认地有super()。

final关键字:final关键字可以修饰类、成员变量和方法中的局部变量。①修饰类:被修饰的类不能有主类。
②修饰父类的方法:子类不能对被修饰的方法进行重写
③修饰变量:被修饰的变量变为常量,常量在运行期间不能发生变化。

上转型对象:通过把子类创建的对象的引用赋给父类创建的对象来得到上转型对象。上转型对象不能操作子类新增的成员变量与方法,但是可以操作子类继承或隐藏的成员变量或方法。注意的是,如果子类重写了父类的静态方法,则子类对象的上转型对象不能调用子类的重写静态方法,只能调用父类的静态方法。

关键字abstract:①修饰方法:被修饰的方法只能声明不能运行。
②修饰类:被修饰的类中可以有abstract方法,也可以有非abstract方法。而没被修饰的类只能有非abstract方法。

abstract父类的abstract子类可以继承或重写父类的abstract方法,但是abstract父类的非abstract子类必须重写父类的abstract方法。
abstrcat的类只能声明对象但是不能创建对象,但是该对象可以成为其子类的上转型对象。
abstract不能和final同时修饰。
abstract类在实际中很好用,因为它注重面向对象而不是面向类。

开闭原则是对扩展开放,对修改关闭。我觉得在这其中abstract起了很大的作用。遵守开闭原则的系统易于维护。
使用interface来定义一个接口。接口=接扣声明+接口体。接口体中只有常量(权限为public,且为static常量)和抽象方法(权限为public,为stract型),没有变量。

public接口可以被任意一个类实现,友好接口可被同一个包里的接口实现。接口也可以通过extens来继承,import语句可以引入包的类也可以引入包的接口。

通过类来实现接口:在类声明中使用关键字implements来声明一至多个接口。非抽象类实现了某个接口,一定要重写这个接口中的所有方法(要去掉abstract,体现public)。抽象类实现了某个接口,既可以重写,也可以不重写。
可以通过接口名来访问常量,也可以通过实现接口的类来直接使用。

接口回调:简单的说,接口回调就是为了能够调用某个接口中的方法。具体操作:类A实现接口B;A创建对象a;B声明变量b;b=a。

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

  • 问题1:使用或覆盖了已过时的API。
  • 问题1解决方案:一开始我以为是运行错误,上网查找后知道这只是一个警告,只是告诉使用了已经过时的函数,但jdk是向下兼容的
    解决方法1:直接在myeclipse里面运行。
    解决方法2:在cmd下编译,javac Dert.java写一个网页applet code=Dert width=200 height=200,保存为:任意名字.html文件,然后双击网页。

  • 问题2:一个具有5个类的程序,错误运行了被调用类。
  • 问题2解决方案:确定程序主体运行。

代码调试中的问题和解决过程

  • 问题1:课上测试题边界运行结果不符合程序计算规则。

    代码需要优化

    代码托管

    上周考试错题总结

  • 错题1
    原因:概念不清
    理解情况:接口的方法默认是public abstract,变量默认是public static final。
  • 错题2
    原因:概念不清
    理解情况:1、接口是可以被接口继承的,即通过关键字extends声明一个接口是另一个接口的子接口。由于接口中的方法和常量都是public,子接口将继承父接口中的全部方法和常量。
    2、抽象类可以实现接口,当一个类声明实现一个接口而没有实现接口中所有的方法,那么这个必须是抽象类,即abstract类。
    3、抽象类是可以继承实体类。

    心得体会


    因为马上要考科目二了,最近在驾校待的时间会比较多,所以这周的Java学习时间就比较少了,老师没有在蓝墨云上发布第四周的学习任务,而在博客园中设置为选做但是第五章的内容还是相当重要的,我感觉从这一章开始才慢慢接触到Java的特殊,希望自己在上半年利用周末和小长假查缺补漏,避免重现以往学期期末临时抱佛脚的惨状。

学习进度条

代码行数 博客量 学习时间 重要成长
目标 5000行 16篇 320小时
第一周 51/100 1/1 12/20 基本掌握了Linux的简单指令
第二周 173/200 1/1 18/20 学习了Java重要基本语法
第三周 672/800 1/1 18/20 学习了包含多个类的Java程序及类的包机制
第四周 436/600 1/1 12/20 学习程序父类和子类的继承规则
  • 计划学习时间:20小时
  • 实际学习时间:12小时

参考资料

原文地址:https://www.cnblogs.com/SANFENs/p/10585775.html

时间: 2024-10-11 12:52:42

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

20175314 《Java程序设计》第五周学习总结

20175314 <Java程序设计>第五周学习总结 教材学习内容总结 public接口可以被任意一个类实现,友好接口可被同一个包里的接口实现. Java不支持多重继承,即一个类只能有一个父类: 为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口: 接口也可以通过extens来继承: 接口是抽象方法和常量值定义的集合,是一种特殊的抽象类: 接口中只包含常量和方法的定义,没有变量和方法的实现: 接口中的所有方法都是抽象的: 接口中成员的访问类型都是public: 接口中的变量默认使

20175314 《Java程序设计》第七周学习总结

20175314 <Java程序设计>第七周学习总结 教材学习内容总结 第八章:常用实用类 String()类代表字符串:Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现.字符串是常量:它们的值在创建之后不能更改.字符串缓冲区支持可变的字符串.因为 String 对象是不可变的,所以可以共享. String()类的构造方法:初始化一个新创建的 String 对象,使其表示一个空字符序列. String(byte[] bytes) 通过使用平台的默认

20175314 《Java程序设计》第八周学习总结

20175314 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章:泛型和集合框架 泛型:可以使用class名称声明一个类,<>里面可以是类和接口,但不能是基本数据类型,泛型还可以作为一种新的声明方式,使用泛型时,不必进行强制类型转换 链表:性质跟C语言大致,但定义和使用不同,比C语言要方便.使用LinkedList来创建链表对象.链表对象有一个很重要的方法是iterator(),使用它可以获得一个Iterator对象,可以对链表进行遍历(迭代),链表还可以进行排序.

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

20165115 2017-2018-2 <Java程序设计>第四周学习总结 教材学习内容总结 第五章主要是围绕子类的继承展开,并在此基础上介绍了一系列的方法与关键字.第六章主要讲述的内容是接口的实现. 代码托管 上周考试错题总结 完成后补充 参考资料 Java学习笔记(第8版) <Java学习笔记(第8版)>学习指导 ... 原文地址:https://www.cnblogs.com/zcy20165115/p/8643294.html

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

20165318 2017-2018-2 <Java程序设计>第四周学习总结 IDEA安装 按照娄老师Intellj IDEA 简易教程,我下载了IDEA但是由于没有注册学校邮箱,我没办法申请免费使用,我在网上找到了IntelliJ Idea 2017 注册码 免费激活方法顺利安装并运行了IDEA. 教材学习总结 第五章 子类与继承 每个子类只能有一个父类,而一个父类可以有多个子类.可以使用关键字extends来定义一个类的子类: class 子类名 extends 类在不加extends关键

20172330 2017-2018-1 《Java程序设计》第四周学习总结

20172330 2017-2018-1 <Java程序设计>第四周学习总结 教材学习内容总结 这一周的内容还是比较多的,而且很复杂,包含第四和第七章. 第四章向我们介绍了类结构的定义与概念,同时举出了好多个例题向我们展示自定义类的方法与应用,对于方法定义的结构与用途进行了讨论:包括return语句,参数,局部数据等方面. 第七章的主要内容则是面向对象设计.通过书本的介绍了,我们探讨了面向对象软件设计的主要问题,了解了确定程序所需要的类和对象的技术,对类之间的关系进行了探讨,详细的学习了sta

20172325 2016-2017-2 《Java程序设计》第四周学习总结

20172325 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 1.对类.对象.声明变量的定义和属性有了进一步的了解 2.学会如何编写一个类并运用到需要的程序中 3.学习了形参和实参的概念和区别 4.修饰符的作用和运用,例如public和private 5.学习了静态类,例如静态方法和静态变量 6.关于封装的作用和运用 7.在面向对象的程序设计时需要做的必要步骤,包括需求.设计.实现和测试 8.对枚举类的进一步了解 9.学习了调用方法中的方法重载 10.UML类

张季跃 201771010139《面向对象程序设计(java)》第十四周学习总结

张季跃 201771010139<面向对象程序设计(java)>第十四周学习总结 第二部分:实验部分 1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 实验1: 导入第12章示例程序,测试程序并进行组内讨论. 测试程序1 l 在elipse IDE中运行教材479页程序12-1,结合运行结果理解程序: l 掌握各种布局管理器的用法: l 理解GUI界面中事件处理技术的用途. l 在布局管理应用代码处添加注释: 测试结果:   测

# 20175227张雪莹 2018-2019-2 《Java程序设计》第四周学习总结

20175227张雪莹 2018-2019-2 <Java程序设计>第四周学习总结 教材学习内容总结 一.子类和父类. 1.子类只继承父类中的protected和public访问权限的成员变量(方法)作为子类的成员变量(方法). 2.若A->B->C->D, 在Other类中用D类中protected的成员变量和方法创建对象object,则两个类需处于同一个包中: 在Other类中用D类继承A类中protected的成员变量和方法创建对象object,则A类和Other类需处