instanceof操作符
- instanceof的作用:向下转型
-
instanceof关键字的使用:
a instanceof A
判断对象a是否是类A的实例。如果是,返回true,如果不是,返回false -
为什么使用instanceof关键字:
为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型 -
如果B是A的父类
则 a instanceof A返回true,则 a instanceof B也返回true
强化练习
- 若子类重写了父类方法,就意味着子类中定义的方法彻底覆盖了父类里的同名方法
系统将不可能把父类里的方法转移到子类里(编译看左边,运行看右边) - 对于实例变量则不存在这样的现象,即使子类里定义了与父类完全相同的实例变量,
这个实例变量依然不可能覆盖父类中定义的实例变量(编译运行都看左边)
“==”和equals的区别
- “==”的使用:
==是运算符,可以使用在基本数据类型变量和引用类型变量中
如果比较的是基本数据类型,比较的两个变量存储的数据是否相同,不一定数据类型要相同
如果比较的是引用数据类型,比较的是两个对象的地址值是否相同,即两个引用是否指向同一个对象实体 - equals ()的使用:
它是一个方法,而非运算符
Object类中定义的equals()方法和“==”运算符的作用一样
.像String、Date、File类中重写了equals()方法,重写以后比较的是两个对象“内容”是否相同 - 自定义类如何重写equals()方法
重写原则:比较两个对象“内容:age和name”是否相同
自定义类中的equals()方法可以自动生成
Object中的toString()方法
-
当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法
-
Object类中对于toString()的定义:
-
像String、Date、File类、包装类中重写了toString()方法,使得再调用对象的toString()时,返回“实体内容”信息
-
自定义类可以重写toString方法,当调用toString()时,返回“实体内容”信息
单元测试
Java中的JUnit的单元测试步骤
-
选中当前工程-右键选择:build path -add libraries -JUnit4 -下一步
-
创建Java类,进行单元测试
此时的Java类要求:1)此类是public的;2)此类提供公共的无参的构造器 -
此类中声明单元方法:
此时的单元测试方法:方法权限是public,没有返回值,没有形参 -
此单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;
-
声明好单元测试方法以后,就可以在方法体内测试相关的代码
-
写完代码以后,左键双击单元测试方法名,右键 run as -JUnit Test
-
说明:1)如果执行结果没有任何异常 绿条;2)如果执行结果有异常 红条
包装类的使用
-
为什么使用包装类:让基本数据类型拥有类的特点–可以构建对象
-
java提供8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征
-
对于包装类的掌握:包装类、String和基本数据类型的相互转换
-
自动装箱,自动拆箱
-
String类型转换为基本数据类型、包装类,调用包装类的parseXXX
-
基本数据类型、包装类---->String类型,调用String重载的valueOf方法
面试题
答案是1.0
false
true
false