Java学习笔记(二十一):类型转换和instanceof关键字
Posted pyqb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习笔记(二十一):类型转换和instanceof关键字相关的知识,希望对你有一定的参考价值。
基本数据类型转换:
自动类型转换:把大类型的数据赋值给大类型的变量(此时的大小指的是容量的范围)
1 byte b = 12; //byte是一个字节 2 int i = b; //int是四个字节
强制类型转换:把大类型的数据赋值给小类型的变量
1 short s = (short) i ;i是int类型四个字节,s是short类型二个字节
引用类型转换:
引用类型的大和小,指的是父类和子类的关系
自动类型转换:把子类对象赋值给父类变量(多态)
1 Animal a = new Dog();
强制类型转换:把父类类型对象赋给子类对象
1 Animal a = new Dog(); 2 Dog d = (Dog)a;
instanceof运算符:
判断某对象是否是某一个类的实例
1 boolean b = 对象A instanceof 类B; //判断A对象是否是B类的实例,如果是,返回true
例子1:
1 public void feed(Animal a) 2 { 3 a.eat(); 4 if(a instanceof Dog) //如果动物a是Dog类对象 5 { 6 Dog d = (Dog) a;//将动物a强转为Dog类 7 d.watch(); //执行Dog类的看家方法 8 } 9 else if (a instanceof Cat) //如果动物a是Cat类对象 10 { 11 Cat c = (Cat)a; //将动物a强转为Cat类 12 c.catchMouse(); //执行Cat类的抓老鼠方法 13 } 14 }
例子2:
1 Object obj = "ABC"; //多态,把String对象赋给Object类型 2 System.out.println(obj instanceof Object); //true 3 System.out.println(obj instanceof Object); //true 4 System.out.println(obj.getClass()); //获取对象的真实类型 5 System.out.println(obj.getClass() == String.class);//true 6 System.out.println(obj.getClass() == Object.class);//false
运行输出:
:
以上是关于Java学习笔记(二十一):类型转换和instanceof关键字的主要内容,如果未能解决你的问题,请参考以下文章