java基础之instanceof的用法
2015-10-09 14:52
507 查看
转载请注明出处:http://blog.csdn.net/u010214991/article/details/49000115
instanceof是Java的一个二元操作符,和==,>, <是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:
String s = "I am an object!";
boolean isObject = s instanceof Object;
我们声明了一个String对象引用,指向一个String对象,然后用instanceof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为True。
此外,instanceof可以通过辨别对象所属的类来进行不同的操作,下面通过一个小例子来展示它的用处
instanceof是Java的一个二元操作符,和==,>, <是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:
String s = "I am an object!";
boolean isObject = s instanceof Object;
我们声明了一个String对象引用,指向一个String对象,然后用instanceof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为True。
此外,instanceof可以通过辨别对象所属的类来进行不同的操作,下面通过一个小例子来展示它的用处
import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends Activity { private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = this; Teacher teacher = new Teacher(); talk(teacher); } public class People { public void say() { Toast.makeText(context, "Hello World", Toast.LENGTH_SHORT).show(); } } public class Student extends People { @Override public void say() { // TODO Auto-generated method stub Toast.makeText(context, "Hello Student", Toast.LENGTH_SHORT).show(); } } public class Teacher extends People { @Override public void say() { // TODO Auto-generated method stub Toast.makeText(context, "Hello Teacher", Toast.LENGTH_SHORT).show(); } } public void talk(People people) { if (people instanceof Student) { Student student = new Student(); student.say(); } if (people instanceof Teacher) { Teacher teacher = new Teacher(); teacher.say(); } } }上面这个例子非常简单易懂,类Teacher和类Student均继承自类People,在oncreate方法中,无非就是实例化了一个对象,然后通过talk方法传入这个对象来判断当前的这个对象属于哪个类,然后通过对应不同的类进行不同的操作罢了。由于例子中的对象属于Teacher类,很明显会执行talk方法中的第二个if语句,也就是最终会执行
Toast.makeText(context, "Hello Teacher", Toast.LENGTH_SHORT).show()这句代码了。
相关文章推荐
- Java学习
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- Java学习总结--列表排序
- Access restriction在myeclipse中遇到的访问限制的问题
- 没看懂
- SpringMVC @Autowired
- 如何通过java反编译工具嵌入myeclipse来跟进查看源码
- Spring MVC Controller单例陷阱
- SpringMVC之控制器的单例和多例管理
- Spring MVC 后端获取前端提交的json格式字符串并直接转换成control方法对应的参数对象
- java拆箱装箱中的一个问题
- java版txt文件下载解决
- java反射详解
- SpringMVC的工作原理
- Java防止SQL注入的几个途径
- JAVA中ResourceBundle和Properties类的区别
- Eclipse或MyEclipse的git插件egit
- 10_9 java笔记
- 深入理解abstract class和interface
- SVN 管理Android项目中eclipse的设置和注意事项