• review21


    Class是java.lang包中的类,该类的实例可以帮助程序创建其他类的实例或者取得其他类的对象的内部信息。

    参考代码如下所示:

    package pack07;
    
    import java.util.Date;
    
    class Rect{
        double width, height, area;
        public double getArea()
        {
            area = width * height;
            return area;
        }
    }
    
    public class Test11 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try{
                Class cs = Class.forName("pack07.Rect");
                Rect rect = (Rect)cs.newInstance();//Rect必须有无参构造方法
                rect.width = 100;
                rect.height = 200;
                System.out.println("rect的面积:" + rect.getArea());
                cs = Class.forName("java.util.Date");
                Date date = (Date)cs.newInstance();
                System.out.println(date.toString());
            }
            catch(Exception e)
            {
                System.out.println(e.toString());
            }
        }
    }

    运行结果如下所示:

    获取类的相关信息

    当一个类被加载且创建对象是,和该类相关的一个类型为Class的对象就会自动创建,任何对象调用getClass()方法都可以获取和该对象相关的一个Class对象,这个Class对象调用如下的方法可以获取对象的有关信息。

    String getName()返回类的名字

    Constructor[] getDeclaredConstructors()返回类的全部构造方法

    Field[] field getDeclaredFields()返回类的全部成员变量

    Method[] getDeclaredMethods()

    代码展示如下所示:

    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.Date;
    
    public class Test12 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Date date = new Date();
            Class cs = date.getClass();
            String className = cs.getName();
            Constructor[] con = cs.getDeclaredConstructors();
            Field[] field = cs.getDeclaredFields();
            Method[] method = cs.getDeclaredMethods();
            System.out.println("类的名字:" + className);
            System.out.println("类中有如下的成员变量:");
            for(int i = 0; i < field.length; i++)
            {
                System.out.println(field[i].toString());
            }
            System.out.println("类中有如下的方法:");
            for(int i = 0; i < method.length; i++)
            {
                System.out.println(method[i].toString());
            }
            System.out.println("类中有如下的构造方法");
            for(int i = 0; i < con.length; i++)
            {
                System.out.println(con[i].toString());
            }
        }
    
    }

    运行结果如下所示:

  • 相关阅读:
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    deep-in-es6(二)
    jQuery插件--根据数据加载的进度动画案例
    shop--14.升级--本地账号注册,登录,修改密码
    shop--13.升级--Redis缓存技术
    JedisUtil工具类
    shop--12.升级--加密数据库明文密码
    shop--11.阿里云部署java网站与微信开发调试
    shop--10.店铺详情(后台+前端类似于shoplist)
    shop--10.店铺列表(前端)
  • 原文地址:https://www.cnblogs.com/liaoxiaolao/p/9441427.html
Copyright © 2020-2023  润新知