javaSE基础学习笔记 day06
向上转型与向下转型
向上转型: 子类型的引用赋值给父类型的引用(多态的实现方法)
向下转型:父类型引用赋值给子类型引用。
注意:为了避免在强制类型转换时发生异常,需要用 a instanceof A 判断对象 a 是否为 A 的实例(当 a instanceof A 返回 true 时,则 A 的父类也可以返回true)。
Object类的使用
- boolean equals(Object obj) // 判断当前对象与形参对象是否相等
提到 equals ,不得不说他与 == 的区别:
==:运算符
可使用在基本数据类型与引用数据类型中
当比较基本数据类型时,比较二者保存的数据是否相等,
当比较引用数据类型时,比较的二者所存放地址是否相同,即是否指向同一个对象。
equals():方法
① Object 中 equals() 的定义
public boolean equals(Object obj){
return (this == obj);
}
与 == 的作用相同。
② 像String,Data,Flle,包装类中都重写了 equals() 方法,重写后比较的不再是地址值,而是实际内容是否相等。
③ 通常我们在比较对象相等时需要重写 equals() 方法。
2.toString()
① 当我们直接输出一个引用时,实际上时调用了该类的 toString() 方法。
② 像String,Data,Flle,包装类中都重写了toString() 方法。
包装类的使用
基本数据类型,包装类,String之间的相互转换方法:
- 包装类与基本数据类型转换
//基本----->包装
int num1 = 123;
Integer in1 = new Integer(num1);
//包装----->基本
int num2 = in1.intValue();
//在JDK5.0之后 推出了新特性 自动装箱与自动拆箱
int num3 = in1;
Integer in2 = num3;
2.基本数据类型和包装类 与 String类型相互转换
//基本 包装------> String 调用valueOf()
float f1 = 12.3f;
String str1 = String.valueOf(f1);
//String------>基本 包装 调用parseXxx();
int num2 = str1.parseInt(str1);