Java中类类的作用与深入理解

  

<强> Java中类类的作用与深入理解

  

,在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类.JVM利用运行时信息选择相应的方法执行。而保存这些信息的类称为类。可能容易产生混淆,容易想到类。不过二者没什么关系,类不过是描述类的一个关键字。而班却是保存着运行时信息的类。

  

,,,,,,它能做什么?类类可以帮助我们在程序运行时分析类,说白了就是获取类中的值。可能瞬间就想到了反射,没错!类一般就是和反射配套使用的,因为我们向类提供一个类或一个类的类名,类就可以提供我们很多信息,比如属性/方法/修饰符/构造器/类名等等。然后我们就可以进一步进行反射。不过,还是先来简单了解下类类的内容和使用方式吧!

  

,,,,,,,我们通常用以下方法来获取类对象:

        字符串str=新的字符串();   类cl=str.getClass ();      

,,,,,,,因为这个类包含太多信息,所以我们可以通过它来获得具体一个类的域/方法和构造器。下面列举一些常用的方法:

        公共静态void main (String [] args){抛出异常//以String.class为例   字符串str=新的字符串();   类cl=str.getClass ();/* *   *获取包名+类名& lt; br>   *以   */cl.getName ();/* *   *只获取类名,字符串   */cl.getSimpleName ();/* *   *获取数组的类对象& lt; br>   *因为所有的Java类都继承自对象,数组也一样。所以数组本身也是个类,得到数组的类自然也可以转回数组。   */cl.getComponentType ();/* *   *返回构造器数组,包括超类的公有成员。   */cl.getConstructors ();/* *   *返回方法数组,包括超类的公有成员。   */cl.getMethods ();/* *   *返回域数组,包括超类的公有成员。   */cl.getFields ();/* *   *返回全部构造器数组,无论是公共/私人还是保护,不包括超类的成员。   */cl.getDeclaredConstructors ();/* *   *返回全部域数组,无论是公共/私人还是保护,不包括超类的成员。   */cl.getDeclaredFields ();/* *   *返回全部方法数组,无论是公共/私人还是保护,不包括超类的成员。   */cl.getDeclaredMethods ();/* *   *获取类前的修饰符   */cl.getModifiers ();   }      之前      

,,,,,,,我们可以通过一个类来获取类对象,进而获取此类的信息。也可以通过全类名来获取类对象。

        类cl=forname(“以”);      

,,,,,,,有了这个类的类对象,我们就可以创建这个类的对象。最方便、快速的方法是调用newInstance()。默认情况下,它默认调用无参构造来返回一个对象。

        字符串str=(字符串)(forname(“以”).newInstance ());      之前      

,,,,,,,以下是用构造函数通过获取构造器来创建对象:

     //调用无参的私有构造函数   构造函数c1=forname(“以”)   .getDeclaredConstructor ();   c1.setAccessible(真正的);   字符串str1=(字符串)c1.newInstance ();//调用有参的私有构造函数   构造函数c2=forname(“以”)   .getDeclaredConstructor(新类[]{字符串。类});   c2.setAccessible(真正的);   字符串str2=(字符串)c2.newInstance (“hello”);   之前      

,,,,,,,类不是太难,因为它就是个信息类。在运行时跟踪类,掌握类的全部信息。

  

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Java中类类的作用与深入理解