首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师_<<基础加强-反射>>

2013-10-18 
黑马程序员_基础加强---反射--------------------ASP.NetAndroidIOS开发、.Net培训、期待与您交流! ----

黑马程序员_<<基础加强---反射>>

--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------


1. 反射      1.概述

             Java类用于描述一类事物的共性,其类有什么属性,不同的实例对象有不同的属性值。就是把java类中的各种成分映射成相应的java类。

      Class:表示的是各个java类是否属于同一类事物。描述的是:类的名字,类的访问属性,类所属于的包名,字段名称的列表,方法名称的列表。

         比较记忆:

          Person类代表人,他的实例是:张三,李四。。等具体的人,

          Class类代表java类,他的实例对象对应的是:

       对象各个类在内存中的字节码,例如:Person类的字节码,ArrayList类的字节码

        一个类被加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,所以他们在内存中的内容是不同的,这一个个的空间分别用一个个的对象来表示,

 
      2.基本方法

          格式:

        格式1:类名.class;

        格式2:对象.getClass()

        格式3:Class.forName(“包名.类名”);

        九个预定义对象 基本数据类型(booleanbytecharshortintlongfloatdouble。)和void

        只有这写基本类型的包装类可以通过包装类.TYPE获得所包装的基本类型的Class对象。

 

     

public static void main(String[] args) throws Exception {    InputStream in=new FileInputStream("nane.properties");        Properties pro=new Properties();        pro.load(in);        in.close();        String className=pro.getProperty("className");        Class c=Class.forName(className);        Collection con=(Collection)c.newInstance();        con.add(new Person(1,2));        con.add(new Person(4,2));        con.add(new Person(3,2));        con.add(new Person(1,2));        System.out.println("集合长度:"+con.size());         }结果:集合长度:4


 

        3. 加载资源的位置

       1.可是使用绝对路径,但是那么就使用getRealPath,然后进行存数,

       2.使用加载器

         加载器可以加载java文件,那么也可以加载配置文件,但是有一点缺点,就是配置文件只能读取不能修改,可以使用相对路径,那么最前面要加”/”,否则就不用加”/”,表示的是根目录。

         InputStream in=Text.class.getClassLoader().getResourceAsStream("/包名/nane.properties");

Text是运行类的类名,nane.properties是配置的文件

 


   

--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------


热点排行