zoukankan      html  css  js  c++  java
  • 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());
            }
        }
    
    }

    运行结果如下所示:

  • 相关阅读:
    Bone Collector HDU
    Super Jumping! Jumping! Jumping! HDU
    147. 对链表进行插入排序
    C++ Program to Implement Sorted Circularly Doubly Linked List
    344. 反转字符串
    1360. 日期之间隔几天
    剑指 Offer 62. 圆圈中最后剩下的数字
    1441. 用栈操作构建数组
    594. 最长和谐子序列
    836. 矩形重叠
  • 原文地址:https://www.cnblogs.com/liaoxiaolao/p/9441427.html
Copyright © 2011-2022 走看看