欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中getclass与.class的认识

程序员文章站 2022-07-16 22:42:33
...

反射

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

类与实例化

面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同

getclass()与.class()

         /**
         * 创建Student的实例化对象A
         */
        Student A = new Student();
       String strA= new String(String.valueOf(A.getClass()));
       System.out.println("实例化-对象A用getclass方法获得类:"+strA);
       String strA1= new String(String.valueOf(Student.class));
       System.out.println("用类Student的.class方法获取类的方法:"+strA1);
       boolean boo= strA.equals(strA1);
       System.out.println(boo);

实例化对象A用getclass获得类:class classGet$Student

类Student的.class获取类:class classGet$Student
true

         /**
         * StudentOpg是Student的子类
         * 创建StudentOpg的实例化对象B
         * 实例化对象.getclass()
         * 类.class()
         */
       StudentOpg B=new StudentOpg();
        String strB= new String(String.valueOf(B.getClass()));
        System.out.println("实例化-对象B用getclass方法获得类:"+strB);
        String strB1= new String(String.valueOf(StudentOpg.class));
        System.out.println("用类StudentOpg的.class方法获取类的方法:"+strB1);

       /**此处判断父类Student的实例化和子类StudentOpg的实例化是否相等*/
        boolean boo1= strA.equals(strB);
        System.out.println(boo1);

实例化对象B.getclass获得类:class classGet$StudentOpg

类StudentOpg.class获取类:class classGet$StudentOpg
false

  用实例化对象.getclass()的方法和类.class()的方法都可以获取当前对象的类型类和类的类型类.
  获取到的类型类都是一一对应的.子类获取到的是子类的类型类,父类获取到的是父类的类型类,

相关标签: java java