反射 学习笔记之Class类的使用

1  java世界中万事万物皆对象,除了2个特殊情况

  • int float等这些基本数据类型,(但是也都有Integer和Float等封装类做了弥补)
  • java staic定义的,它不是属于对象的,而是属于类的
2  类也是对象,类是java.lang.Class类的实例对象 相当于 "There is a class named Class"
下面用代码说明:“任何一个类都是Class类的实例对象,有三种表示方式”
[java] view plain copy
  1. package com.xsf.Test;  
  2.   
  3. public class classDemo1 {  
  4.     public static void main(String[] args) {  
  5.         Test1 test1 = new Test1();//通过new的方式表示Test1的实例对象  
  6.           
  7.           
  8.         /** 
  9.          * 其实Test1类也是对象是java.lang.Class对象的,如何表示?就不可以通过new的方式 
  10.          * 任何一个类都是Class类的实例对象,有三种表示方式 
  11.          * t1,t2,t3都是Test1的类类型因而都相等 
  12.          */  
  13.           
  14.         Class t1 = Test1.class;//第一种方式,任何一个类都有一个隐含的静态成员  
  15.         Class t2 = test1.getClass();//第二种方式,已知该类的对象通过getclass方法获取  
  16.       
  17.         //t1,t2表示了Test1类的类类型(class Type)  
  18.         /** 
  19.          * 万事万物皆对象 
  20.          * 类也是对象是class类的实例对象 
  21.          * 这个对象我们称为该类的类类型 
  22.          */  
  23.         System.out.println(t1==t2);  
  24.           
  25.         Class t3 = null;//第三种方式  
  26.         try {  
  27.             t3 = Class.forName("com.xsf.Test.ClassDemo1");  
  28.         } catch (ClassNotFoundException e) {  
  29.               
  30.             e.printStackTrace();  
  31.         }  
  32.         System.out.println(t2==t3);  
  33.         //可以通过类的类类型创建该类的实例对象:通过t1,t2,t3创建Test1的实例对象  
  34.         try {  
  35.             Test1 t4 = (Test1)t1.newInstance();//需要有无参数的构造方法  
  36.             t4.init();  
  37.         } catch (InstantiationException e) {  
  38.               
  39.             e.printStackTrace();  
  40.         } catch (IllegalAccessException e) {  
  41.               
  42.             e.printStackTrace();  
  43.         }  
  44.     }  
  45. }  
  46.   
  47. class Test1{  
  48.      void init() {  
  49.         System.out.println("Hello World!");  
  50.   
  51.     }  
  52. }  


转自:http://blog.csdn.net/xsf50717/article/details/44964605

上一篇:AI:人工智能概念之机器学习、深度学习中常见关键词、参数等中英文对照(绝对干货)(二)


下一篇:小白学习MySQL - 数据库软件和初始化安装