zoukankan      html  css  js  c++  java
  • Java 反射的用法 有关Class类的解释

    
    
    package com.imooc.test;

    public class ClassDemo1 {
    public static void main(String[] args) {
    Foo fool = new Foo();//foo1就表示出来了
    //Foo 这个类也是一个实例对象,Class类的实例对象,如何表示呢
    //任何一个类都是Class的实例对象,这个实例对象有三种表示方式
    //第一种表示方式---> 实际在告诉我们任何一个类都有一个隐含的静态成员变量class
    Class cl = Foo.class;
    //第二种表达方式,已知该类的对象通过getClass方法
    Class c2 = fool.getClass();
    /* 官网解释,c1,c2 表示了Foo 类的类类型(class type)
    * 万事万物皆对象
    * 类也是对象,是Class类的实例对象
    * 这个对象我们称为该类的类类型
    */
    //不管c1 or c2都代表了Foo 类的类类型,一个类只可能是Class类的一个实例对象
    System.out.println(cl == c2);
    //第三种表达方式
    Class c3 = null;
    try {
    c3 = Class.forName("com.imooc.test.Foo");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    System.out.println(c2 == c3);
    //我们完全可以通过类的类类型创建该类的对象实例,通过c1.c2.c3创建Foo 的实例
    try {
    Foo foo = (Foo) cl.newInstance();//前提需要有无参数的构造方法
    foo.print();
    } catch (InstantiationException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    }


    }
    }
    class Foo{
    void print(){
    System.out.println("foo 打印输出");
    }
    }
     

     动态加载类

    1.编译时刻加载类是静态加载类,运行时刻加载类是动态加载类

  • 相关阅读:
    借书证信息管理系统,C语言实现
    以太坊 助记词提取 账户 公钥 私钥 最新实现可用。
    solc@0.6.3 web3@1.2.6 都是最新版本的,编译与部署示例
    ganache gas 错误
    MFC 记事本 文本编辑器
    课程设计 C语言 学生成绩管理系统
    cmake(.os .a)
    git recommend(alive)
    tensorflow tfrecoder read write
    300. 最长上升子序列
  • 原文地址:https://www.cnblogs.com/gylhaut/p/8824394.html
Copyright © 2011-2022 走看看