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

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

教材学习内容总结

定义理解

子类

  1. 子类只能有一个父类,它继承了父类(超类)的属性和行为。

class 子类名 extends 父类名{}

  1. 每个类(除了Object类)有且仅有一个父类,一个类可以有多个或零个子类。class Aclass A extends Object是等同的。
  2. 当子类和父类不在同一个包中时父类中的private和友好访问权限的成员变量不会被子类继承。对于protected变量或方法,若想访问,则需与声明该变量或方法的类处于同一个包中。
  3. 子类和父类可能有相同名字的成员变量,子类会隐藏所继承的成员变量。
    子类对象及子类自己定义的方法操作的是子类自己声明的变量。
    子类继承方法操作的是被子类继承或隐藏的成员变量。

instanceof

  1. instanceof左面操作元是对象,右面的操作元是类
  2. 当左面的操作元是右面的类或其子类创建的对象时,运算的结果是true,反之false。

方法重写

  1. 子类定义的方法类型和父类方法的类型一致,并且方法的名字、参数个数、参数的类型和父类的方法完全相同。
  2. 重写方法可以操作继承的成员变量、调用继承的方法,操作子类新声明的成员变量、调用新定义的其他方法,但不能直接操作被子类隐藏的成员变量和方法。
  3. 重写只能提高访问权限,不能降低。

super

  1. 在子类中使用被子类隐藏的成员变量或方法,super.成员变量,super.方法.

final

  1. final类不能被继承,即不能有子类。
  2. final修饰父类中的一个方法,那么这个方法不允许子类重写(只能继承,不能做任何篡改)
  3. final修饰成员变量或局部变量,则其为常量,需要在使用时指定该常量的值。

对象的上转型对象

  1. 子类创建一个对象,并把这个对象的引用放到父类的对象中

Animal a;

Tiger b=new Tiger();

a=b;

称对象a是对象b的上转型对象
2. 上转型对象不能操作子类新增的成员变量和方法,但可以访问继承和隐藏。如果子类重写了父类的实例方法,那上转型调用的是子类重写的。

多态

父类的某个方法被子类重写以产生自己的功能行为。

abstract

只允许声明,不允许实现,不允许使用final和abstract同时修饰一个方法或类,且abstract方法必须是实例方法。

接口

  1. 声明:interface接口的名字
  2. 接口体中包含常量的声明和抽象方法
  3. 如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法,而且方法的访问权限一定要明显的用public修饰。

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

  • 问题1:书中Example5_5子类B中定义的是float型变量,为何输入时可以直接输入8,9?
  • 问题1解决方案:对前面的知识点有所遗忘,系统可以自动完成级别低的变量到级别高的变量的转化。
  • 问题2:书中Example5_7里修改程序后的结果和我理解后算出来的不一样

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

  • 问题1:

  • 问题1解决方案:只能修改文件名,中间的空格会默认为后面的路径

代码托管

上周考试错题总结

  • >>>为无符号位右移,>>为带符号位右移,区别在于移位空出来位置,带符号位的全部需要用符号位补齐。
  • if关键字后面的小括号内,表达式的值可以为10。这句话是错的。表达式是指整个式子,不应理解为if(a==10).
  • 3* 2^2的结果并非12,而是4,我理解的是优先运算3*2,再与2进行异或。
  • 0xaa|0x55的值为?

    0xaa转化为二进制应为10101010,0x55转化为二进制应为01010101,按位或后为11111111,注意转化为十六进制要写为0xFF,而不是FF。
  • Float是float提供的封装类,不是基本数据类型
  • 以0开头的是八进制表示法,十六进制以0X开头
  • byte b=(byte)(-150);则b的值为106

    byte的范围为[-128,127],150-128=22,22往前接着跟上一组127的部分,127-22+1=106;
  • char str[]="hello"与char str[]={'h','e','l''l''o'}是正确的

    主要注意java不同于c语言,方括号里不能有数组元素个数,其次在花括号里字符串必须拆成单个字母写。

参考资料

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 36/36 4/4 30/30
第二周 464/500 1/5 18/48
第三周 331/881 2/7 17/65
第四周 939/1820 2/11 15/80
原文地址:https://www.cnblogs.com/KY-high/p/8646235.html