zoukankan      html  css  js  c++  java
  • java反射--Class类

    面向对象的世界里,万事万物皆对象。

    1)类是谁的对象呢?

    类是对象,类是java.lang.Class类的实例对象。

    2)这个对象如何表示呢?

    package com.reflect;
    
    public class ClassDemo1 {
    
        public static void main(String[] args) {
    
            //Foo的对象如何表示
            Foo foo1=new Foo();//f001就表示出来了
            //Foo这个类,也是一共实例对象,Class类的实例对象,如何表示呢?
            //任何一共类都是Class类的实例对象,这个实例对象有三种表示方式
            
            //第一种表示方式--》实际告诉我们,任何一共类都有一个隐含的静态成员变量class
            Class c1=Foo.class;
            
            //第二种表达方式   已知该类的对象,通过getClass方法
            Class  c2=foo1.getClass();
            
            //官网c1,c2表示了Foo类的类类型(class type)
            //万事万物皆对象,
            //类也是对象,是Class类的实例对象,
            //这个对象我们称为类的类类型
            
            //不管c1 还是 c2 都代表了Foo类的类类型,一共类只可能是Class类的一共实例对象
            System.out.println(c1==c2);
            
            //第三种表达方式
            Class c3=null;
            try {
                c3=Class.forName("com.reflect.Foo");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            System.out.println(c2==c3);
            
            //我们完全可以通过类的类类型创建该类的实例对象-->,通过c1或c2或c3创建Foo的实例
            try {
                Foo foo2=(Foo)c1.newInstance();    //需要有无参数的构造方法
                foo2.print();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            
        }
    
    }
    class Foo{
        
        void print()
        {
            
        }
    }
  • 相关阅读:
    前人风采
    【C++ Primer 第16章】1. 定义模板 (一)
    CCF CSP认证考试试题
    【C++ Primer 第11章】4. 无序容器
    【C++ Primer 第11章 练习答案】2. 关联容器操作
    【C++ Primer 第11章】2. 关联容器操作
    dxRatingControl使用
    dxRangeTrackBar使用教程
    UniConnectDialog使用
    Delphi窗体置顶及失去焦点后取得焦点
  • 原文地址:https://www.cnblogs.com/alsf/p/8242143.html
Copyright © 2011-2022 走看看