java中instanceof和getClass()的作用

初学者难免有点混淆java中instanceof和getClass()的作用,  下面就来一一讲解。

   父类A:

class A { }

    子类B:

class B extends A { }  

    构造对象

Object o1 = new A(); Object o2 = new B(); 

一、instanceof

    演示一:

1、o1 instanceof A => true  2、o1 instanceof B => false  3、o2 instanceof A => true // <================ HERE  4、o2 instanceof B => true 

分析==>

用法:

        英文:result = object instanceof class

        中文:结果 = 某个实例对象  instanceof   某个类名

java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

总结:

                   S(Object) instanceof T(Class)

    简单来说,instanceof就是判断对象S是否是T类的实例,或者是T类的子类实例。

二、getclass

    演示二:

1、o1.getClass().equals(A.class) => true 2、o1.getClass().equals(B.class) => false 3、o2.getClass().equals(A.class) => false // <===============HERE 4、o2.getClass().equals(B.class) => true  

分析==>

getClass方法在JDK1.8中定义如下:

/***    Returns the runtime class of this Object*/public final native Class<?>  getClass();

功能:

     返回在运行时类的对象。

getClass() will be useful when you want to make sure your instance is NOT a subclass of the class you are comparing with.

 

三、instanceof与getclass的区别

1、作用:

  • instanceof: 主要用来判断  对象与类之间的关系。
  • getclass: 主要用来判断  类与类之间的关系。

 

参考:

1、http://www.jb51.net/article/36114.htm

时间: 2024-12-28 15:28:07

java中instanceof和getClass()的作用的相关文章

java中instanceof和getClass()的区别分析

本篇文章介绍了,在java中instanceof和getClass()的区别分析.需要的朋友参考下 class A { } class B extends A { } Object o1 = new A();  Object o2 = new B(); o1 instanceof A => true  o1 instanceof B => false  o2 instanceof A => true // <================ HERE  o2 instanceof

Java中String args[]起什么作用?

在百度知道上看到这样一个答案: 在命令提示符中运行该程序时 可以附加参数运行 输入的参数会存入到字符传数组 args[]中例如:在命令提示符中运行该程序的时候假设该程序在D的JAVA文件夹中D:JAVA\javac Example.javaD:JAVA\java Example 20则屏幕中输出This is a simple Java program.而args[]中所存储的是20 于是我试了一下: public class Hello { private int asd; public He

Java中初始化块的真实作用

声明:本博客为原创博客,未经允许,不得转载!原文链接为 http://blog.csdn.net/bettarwang/article/details/27128323. 对于普通的类而言,可以放在初始化块中的初始化工作其实完全可以放到构造函数中进行,只不过有时会带来些许不便,如有多个构造器,就要在多个地方加上初始化函数完成初始化工作,而如果放到初始化块中的话则只要写一次即可.如下例所示: import java.util.*; public class Car { private void i

Java中instanceof关键字的用法总结

instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据 java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: result = object instanceof class 参数: Result:布尔类型

Java中instanceof用法

java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:result = object instanceof class参数:Result:布尔类型.Object:必选项.任意对象表达式.Class:必选项.任意已定义的对象类.说明:如果object 是class 的一个实例,则instanceof 运算符返回true.如果object 不是指定类的一个实例,或

在Java中instanceof的用法

Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:result = object instanceof class参数:Result:布尔类型.Object:必选项.任意对象表达式.Class:必选项.任意已定义的对象类.说明:如果 object 是 class 的一个实例,则 instanceof 运算符返回 true.如果 object 不是指定类的一

Java中instanceof关键字的理解

java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: result = object instanceof class 参数: Result:布尔类型. Object:必选项.任意对象表达式. Class:必选项.任意已定义的对象类. 说明: 如果 object 是 class 的一个实例,则 instanceof 运算符返回 true.如果 object

java中什么是构造方法及其作用

构造方法就是与类同名的那个方法,它的作用是可以用来初始化class Person //人类{public Person(String n,int a) //构造方法 { name = n; age = a;} private string name; private int age;}static void main(String[] args){Person p = new Person("张三",14);//这就是作用}new一个对象的时候要用到构造函数,例如Hello hello

java中的Class.forName的作用

Class.forName(xxx.xx.xx) 返回的是一个类 首先你要明白在java里面任何class都要装载在虚拟机上才能运行.这句话就是装载类用的(和new 不一样,要分清楚). 至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点. A a = (A)Class.forName("pacage.A").newInstance(); 这和你 A a = new A(): 是一样的效果. 关于