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关键字的主要内容,如果未能解决你的问题,请参考以下文章

Java练习题Java 程序的输出 | 第二十一套(类型转换)

Java基础学习笔记二十一 多线程

Java学习笔记之二十一抽象类在Java继承中的用法小结

Struts(二十一):类型转换与复杂属性集合属性配合使用

python学习(二十一)加密模块及数据库操作

二十一PHP框架Laravel学习笔记——模型的访问器和修改器