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());
}
} }

运行结果如下所示:

review21的更多相关文章

随机推荐

  1. oracle 查看表是否被锁

    --以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...

  2. _utf8_encode _utf8_decode base64_encode base64_decode

    const Base64 = { // private property _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv ...

  3. Avoiding Full Table Scans

    w MySQL :: MySQL 5.7 Reference Manual :: 9.2.1.19 Avoiding Full Table Scanshttps://dev.mysql.com/doc ...

  4. Hexo+yilia博客首页不显示全文,显示more,截断文章。

    个人主页:https://www.yuehan.online hexo new “xxx” 在md文档中 插入<!--more-->即可. 现在博客:www.wangyurui.top

  5. 0404-服务注册与发现-客户端负载均衡-两种自定义方式-Ribbon通过代码自定义配置、使用配置文件自定义Ribbon Client

    一.官方文档解读 官方地址:https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_cust ...

  6. Android之四大组件、六大布局、五大存储

    [-] Android六大界面布局方式 1 LinearLayout线性布局 LinearLayout的常用XML属性及相关方法 LinearLayout子元素支持的常用XML属性及方法 2 Tabl ...

  7. Android Studio工程引用第三方so文件

    应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库.在Androi ...

  8. 剑指offer 面试7题

    面试7题: 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{ ...

  9. id函数

    描述 id() 函数用于获取对象的内存地址. 语法 id 语法: id([object]) 参数说明: object -- 对象. 返回值 返回对象的内存地址. 实例 以下实例展示了 id 的使用方法 ...

  10. SQL SERVER 存储/ 存储结构 内部数据结构

      资料: http://www.cnblogs.com/woodytu/p/4488930.html