在之前的学习中,经常遇到instanceof运算符,对于它的用法总感觉理解不到位,所以专门总结一下它的用法加深理解。
instanceof主要用来判断一个类是否实现了某个接口,或者判断一个实例对象是否属于一个类。
1.判断一个对象是否属于一个类
boolean result = p instanceof Student;
它的返回值是一个布尔型的。
2.对象类型强制转换前的判断
Person p = new Student();
//判断对象p是否为Student类的实例
if(p instanceof Student)
{
//向下转型
Student s = (Student)p;
}
暂时接触到instanceof运算符的使用就只有这两种,以后发现再来补充。
3.从对象的类型转换,联想到数据的类型转换,大概写一下。
3.1自动转换:较小范围自动转换为较大范围。
byte——short——int——long——float——double
3.2强制转换:较大范围手动强制转换为较小范围。
double x = 10.25;
int y = (int)x;
3.3两者对比。
int x = 10;
int y = 3;
float z = x/y;//自动类型转换
System.out.println("z="+z);
float z1 = (float)x/y;//强制类型转换
System.out.println("z="+z1);
输出结果:
z=3.0
z1=3.3333333
4.又联系到字符类型和数据类型转换,也大概写一下。
4.1字符类型转换成整型。
String x = "12";
int y = Integer.parseInt(x);
String str = "12";
int b = Integer.valueOf(str).intValue();
***注意:上述两种方法都不能定义汉字、字母、符号。
4.2整型转换成字符型。
int i = 10;
String s = String.valueOf(i);
int i = 10;
String s = Integer.toString(i);
int i = 10;
String s = "" + i;