认识Class类:

正常情况下,必须指定类的完整路径才能实例化对象,但是java中也允许通过一个对象找到其所在类的信息。这实际就是class类的功能。

package 类集;

class X{
};
public class test1{
public static void main(String args[]){
X x = new X() ; // 实例化X类的对象
System.out.println(x.getClass().getName()) ; // 得到对象所在的类
}
}

运行结果:

类集.X

object类有如下优点:

CLASS类

  Class本身表示一个类本身,通过class可以得到一个类中完整结构,包括此类的方法定义,方法属性等。

常用方法:

实例化class类对象的三种方法:

1,通过forName(包。类名称)方法。

2,类。class  

3,对象。getClass()

一,其中forName定义如下:实例化是forName(包.类名称)

public static Class<?> forName(String className)
throws ClassNotFoundException

可见,使用forName()需要处理异常。

二,getClass()是object类的方法,对象.getClass()

三,类。class。

四,通过getName(),可以获取类名称。

如下例子:

package 类集;

class X{
};
public class test1{
public static void main(String args[]){
Class<?> c1 = null ; // 指定泛型
Class<?> c2 = null ; // 指定泛型
Class<?> c3 = null ; // 指定泛型
try{
// 以下的操作形式是在开发中最常用的一种形式
c1 = Class.forName("类集.X") ;  //forName(包.类名称)
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
c2 = new X().getClass() ; // 通过Object类中的方法实例化
c3 = X.class ; // 通过类.class实例化
System.out.println("类名称:" + c1.getName()) ; // 得到类的名称
System.out.println("类名称:" + c2.getName()) ; // 得到类的名称
System.out.println("类名称:" + c3.getName()) ; // 得到类的名称
}
}

一旦实例化Class类后,即可进行反射的进一步操作。

总结

1,了解class类的作用:反射源头,

2,三种class类的实例化方式,要以forName()重点掌握,还有 类.class

最新文章

  1. asp.net分页控件
  2. java调用.net asmx / wcf
  3. IntelliJ IDEA使用(3)——IDEA连接Git
  4. matlab文件操作及读txt文件(fopen,fseek,fread,fclose)
  5. 关于Spring定时任务(定时器)用法
  6. PHP错误处理
  7. 错误记录:html隐藏域的值存字符串时出错
  8. schedule和scheduleUpdate
  9. Debian的定时执行命令Crontab
  10. 用JAVA实现数字水印(可见)
  11. SharePoint2010主题和样式揭秘
  12. UVA 12378 Ball Blasting Game 【Manacher回文串】
  13. Perfmon 介绍
  14. Linux编程之UDP SOCKET全攻略
  15. Jboss 集群配置
  16. java算法 蓝桥杯(题+答案) 方格填数
  17. tomcat部署项目启动采坑之UnknownHostException
  18. 牛客网:java入门实现遍历目录
  19. echarts柱状图点击阴影部分触发事件
  20. 插入排序之Java实现

热门文章

  1. 【剑指offer】顺时针打印数组
  2. JZYZOJ1535 [haoi2014]穿越封锁线
  3. 【BFS】Pots
  4. 【线段树】Gym - 101201J - Shopping
  5. 【二分】Petrozavodsk Winter Training Camp 2017 Day 1: Jagiellonian U Contest, Monday, January 30, 2017 Problem A. The Catcher in the Rye
  6. 【Floyd】POJ2139 -Six Degrees of Cowvin Bacon
  7. 【MySQL笔记】触发器,存储过程和函数
  8. (Mark)JS中关于闭包
  9. #Html学习积累#分割线中间添加文字
  10. Android——Activity and Service