(易忘篇)java基础编程难点4

2020-06-08 16:04:22来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

(易忘篇)java基础编程难点4

关键字:super;多态性;Java中的JUnit单元测试;包装类

关键字:super

  1. super关键字可以理解为:父类的。
  2. 可以用来调用的结构:属性、方法、构造器。
  3. super调用属性、方法:
    • 我们可以在子类的方法或构造器中通过使用super.属性super.方法的方式,显示的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略super.
    • 特殊情况:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显示的使用super.属性的方式,表面调用的是父类中声明的属性。
    • 特殊情况:当子类重写了父类中的方法以后,我们要想在子类中调用父类中被重写的方法时,则必须显示的使用super.属性的方式,表面调用的是父类中被重写的方法。
  4. super调用构造器:
    • 我们可以在子类的构造器中显示的使用super(形参列表)的方式,调用父类中声明的指定的构造器。
    • super(形参列表)的使用,必须声明在子类构造器的首行!
    • 我们在类的构造器中,针对于this(形参列表)super(形参列表)只能二选一,不能同时出现。
    • 在构造器的首行,没显示的声明this(形参列表)super(形参列表),则默认调用的是父类中空参的构造器:super()。
    • 在类的多个构造器中,至少一个类的构造器中使用了super(形参列表),调用父类中的构造器。

多态性

  1. 多态性的使用:虚拟方法调用

① 有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。

② 对象的多态性,只适用于方法,不适用于属性(编译和运行都看左边)。

  1. 关于向上转型与向下转型:

① 向上转型:多态。

② 向下转型:使用强制类型转换符:()。

③ 向下转型注意点:
使用强转时,可能出现ClassCastException的异常。
为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型。

  1. instanceof的使用:

① a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false。
② 如果 a instanceof A返回true,则 a instanceof B也返回true.其中,类B是类A的父类。
③ 要求a所属的类与类A必须是子类和父类的关系,否则编译错误。

Java中的JUnit单元测试

步骤:

  • 1.中当前工程 - 右键择:build path - add libraries - JUnit 4 - 下一步;
  • 2.创建Java类,进行单元测试;
    (此时的Java类要求:① 此类是public的 ②此类提供公共的无参的构造器。)
  • 3.此类中声明单元测试方法;
    (此时的单元测试方法:方法的权限是public,没返回值,没形参。)
  • 4.此单元测试方法上需要声明注解:@Test,并在单元测试类中导入:对应JUnit版本的Test类;
  • 5.声明好单元测试方法以后,就可以在方法体内测试相关的代码;
  • 6.写完代码以后,左键双击单元测试方法名,右键:run as - JUnit Test。

说明:

  • 1.如果执行结果没任何异常:绿条;
  • 2.如果执行结果出现异常:红条。

包装类

  1. 基本数据类型与对应的包装类:

    2.需要掌握的类型间的转换:(基本数据类型、包装类、String):
  • 基本数据类型、包装类--->String:调用String重载的valueOf(Xxx xxx)
  • String--->基本数据类型、包装类:调用包装类的parseXxx(String s)
  1. 应用场景
  • Vector类中关于添加元素,只定义了形参为Object类型的方法。

原文链接:https://www.cnblogs.com/mango-peel527/p/13064465.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:我可真是醉了,一个SpringBoot居然问了我30个问题

下一篇:@Controller、@RestController