(易忘篇)java基础编程难点4
本博客随笔主要记录本人学习过程中的知识,欢迎大家一同学习,有不对的地方很高兴读者能详细指出,感激不尽!
关键字:super
- super关键字可以理解为:父类的。
- 可以用来调用的结构:属性、方法、构造器。
- super调用属性、方法:
- 我们可以在子类的方法或构造器中通过使用
super.属性
或super.方法
的方式,显示的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略super.
。 - 特殊情况:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显示的使用
super.属性
的方式,表面调用的是父类中声明的属性。 - 特殊情况:当子类重写了父类中的方法以后,我们要想在子类中调用父类中被重写的方法时,则必须显示的使用
super.属性
的方式,表面调用的是父类中被重写的方法。
- 我们可以在子类的方法或构造器中通过使用
- super调用构造器:
- 我们可以在子类的构造器中显示的使用
super(形参列表)
的方式,调用父类中声明的指定的构造器。 super(形参列表)
的使用,必须声明在子类构造器的首行!- 我们在类的构造器中,针对于
this(形参列表)
或super(形参列表)
只能二选一,不能同时出现。 - 在构造器的首行,没显示的声明
this(形参列表)
或super(形参列表)
,则默认调用的是父类中空参的构造器:super()。 - 在类的多个构造器中,至少一个类的构造器中使用了
super(形参列表)
,调用父类中的构造器。
- 我们可以在子类的构造器中显示的使用
多态性
- 多态性的使用:虚拟方法调用。
① 有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。
② 对象的多态性,只适用于方法,不适用于属性(编译和运行都看左边)。
- 关于向上转型与向下转型:
① 向上转型:多态。
② 向下转型:使用强制类型转换符:()。
③ 向下转型注意点:
使用强转时,可能出现ClassCastException的异常。
为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型。
- 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.如果执行结果出现异常:红条。
包装类
- 基本数据类型与对应的包装类:
2.需要掌握的类型间的转换:(基本数据类型、包装类、String):
- 基本数据类型、包装类--->String:调用String重载的valueOf(Xxx xxx)
- String--->基本数据类型、包装类:调用包装类的parseXxx(String s)
- 应用场景
- Vector类中关于添加元素,只定义了形参为Object类型的方法。