day12每日一考
题目
1.如何实现向下转型?需要注意什么问题?如何解决此问题?
2.==和equals()有何区别?
3.class User{
String name;
int age;
//重写其equals()方法
}
4.写出8种基本数据类型及其对应的包装类
5.基本数据类型、包装类与String.三者之间如何转换
答案
第一题
向下转型:父类通过强转符号转换为子类
父类所向下转型的类是不是自己的子类,导致出现异常
通过instanceof关键字进行判断
第二题
==:是标识符可以用于基本数据类型以及引用数据类型
引用数据类型比较的是地址值
基本数据类型比较的数值
equals():是Object类的方法,只能用于引用数据类型。
在Object类中就是==,比较地址值
在String Date File等类中对方法进行了重写比较的是内容是否一致
我们自己定义的类也可以重写equals()方法
第三题
public class User {
String name;
int age;
/*自动生成的
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof User)) return false;
User user = (User) o;
return age == user.age && Objects.equals(name, user.name);
}*/
//自己编写
@Override
public boolean equals(Object o) {
if(o==this){
return true;
}
if(o instanceof User){
return this.age==((User) o).age&&this.name.equals(((User) o).name);
}
return false;
}
}
第四题
byte----Byte
short----Short
int----Integer
long----Long
char----Character
float----Float
double----Double
boolean----Boolean
第五题
基本数据类型—包装类 自动装箱
包装类-----基本数据类型 自动拆箱
包装类或基本数据类型----String String.valueof()
String—包装类或基本数据类型 包装类.parseXxx()