Java基础中篇

 测试类:[java] view plain copy<span style=font-size:14px;>package fanshe.field;  import java.lang.reflect.field;  /*  * 获取成员变量并调用:  *   * 1.批量的  *      1).field[] getfields():获取所有的公有字段  *      2).field[] getdeclaredfields():获取所有字段,包括:私有、受保护、默认、公有;  * 2.获取单个的:  *      1).public field getfield(string fieldname):获取某个公有的字段;  *      2).public field getdeclaredfield(string fieldname):获取某个字段(可以是私有的)  *   *   设置字段的值:  *      field --> public void set(object obj,object value):  *                  参数说明:  *                  1.obj:要设置的字段所在的对象;  *                  2.value:要为字段设置的值;  *   */  public class fields {            public static void main(string[] args) throws exception {              //1.获取class对象              class stuclass = class.forname(fanshe.field.student);              //2.获取字段              system.out.println(************获取所有公有的字段********************);              field[] fieldarray = stuclass.getfields();              for(field f : fieldarray){                  system.out.println(f);              }              system.out.println(************获取所有的字段(包括私有、受保护、默认的)********************);              fieldarray = stuclass.getdeclaredfields();              for(field f : fieldarray){                  system.out.println(f);              }              system.out.println(*************获取公有字段**并调用***********************************);              field f = stuclass.getfield(name);              system.out.println(f);              //获取一个对象              object obj = stuclass.getconstructor().newinstance();//产生student对象--》student stu = new student();              //为字段设置值              f.set(obj, 刘德华);//为student对象中的name属性赋值--》stu.name = 刘德华              //验证              student stu = (student)obj;              system.out.println(验证姓名: + stu.name);                                          system.out.println(**************获取私有字段****并调用********************************);              f = stuclass.getdeclaredfield(phonenum);              system.out.println(f);              f.setaccessible(true);//暴力反射,解除私有限定              f.set(obj, 188/8888/9999);              system.out.println(验证电/话: + stu);                        }      }</span><span style=font-size:18px;>  </span>  
后台输出:
[java] view plain copy************获取所有公有的字段********************  public java.lang.string fanshe.field.student.name  ************获取所有的字段(包括私有、受保护、默认的)********************  public java.lang.string fanshe.field.student.name  protected int fanshe.field.student.age  char fanshe.field.student.sex  private java.lang.string fanshe.field.student.phonenum  *************获取公有字段**并调用***********************************  public java.lang.string fanshe.field.student.name  验证姓名:刘德华  **************获取私有字段****并调用********************************  private java.lang.string fanshe.field.student.phonenum  验证电/话:student [name=刘德华, age=0, sex=  
由此可见调用字段时:需要传递两个参数:object obj = stuclass.getconstructor().newinstance();//产生student对象--》student stu = new student();
//为字段设置值
f.set(obj, 刘德华);//为student对象中的name属性赋值--》stu.name = 刘德华
第/一个参数:要传入设置的对象,第二个参数:要传入实参4、获取成员方法并调用student类:[java] view plain copy<span style=font-size:14px;>package fanshe.method;    public class student {      //**************成员方法***************//      public void show1(string s){          system.out.println(调用了:公有的,string参数的show1(): s =  + s);      }      protected void show2(){          system.out.println(调用了:受保护的,无参的show2());      }      void show3(){          system.out.println(调用了:默认的,无参的show3());      }      private string show4(int age){          system.out.println(调用了,私有的,并且有返回值的,int参数的show4(): age =  + age);          return abcd;      }  }  </span>  
测试类:[java] view plain copy<span style=font-size:14px;>package fanshe.method;    import java.lang.reflect.method;    /*  * 获取成员方法并调用:  *   * 1.批量的:  *      public method[] getmethods():获取所有公有方法;(包含了父类的方法也包含object类)  *      public method[] getdeclaredmethods():获取所有的成员方法,包括私有的(不包括继承的)  * 2.获取单个的:  *      public method getmethod(string name,class<?>... parametertypes):  *                  参数:  *                      name : 方法名;  *                      class ... : 形参的class类型对象  *      public method getdeclaredmethod(string name,class<?>... parametertypes)  *   *   调用方法:  *      method --> public object invoke(object obj,object... args):  *                  参数说明:  *                  obj : 要调用方法的对象;  *                  args:调用方式时所传递的实参;  ):  */  public class methodclass {        public static void main(string[] args) throws exception {          //1.获取class对象          class stuclass = class.forname(fanshe.method.student);          //2.获取所有公有方法          system.out.println(***************获取所有的”公有“方法*******************);          stuclass.getmethods();          method[] methodarray = stuclass.getmethods();          for(method m : methodarray){              system.out.println(m);          }          system.out.println(***************获取所有的方法,包括私有的*******************);          methodarray = stuclass.getdeclaredmethods();          for(method m : methodarray){              system.out.println(m);          }          system.out.println(***************获取公有的show1()方法*******************);          method m = stuclass.getmethod(show1, string.class);          system.out.println(m);          //实例化一个student对象          object obj = stuclass.getconstructor().newinstance();          m.invoke(obj, 刘德华);                    system.out.println(***************获取私有的show4()方法******************);          m = stuclass.getdeclaredmethod(show4, int.class);          system.out.println(m);          m.setaccessible(true);//解除私有限定          object result = m.invoke(obj, 20);//需要两个参数,一个是要调用的对象(获取有反射),一个是实参          system.out.println(返回值: + result);                          }  }  </span>  

西安飞凡网络技术咨询有限公司
400 011 2010


供应梅州液面覆盖球
宁波/甘宝素/呲啶硫酮锌/洗发护发调理剂
太原超能销售培训班 欢迎您来电咨询
金山钯碳回收
供应美国3M防火泥凝固型CP25WB+
Java基础中篇
创兴联 不锈钢气瓶提车 定做304不锈钢气瓶推车可来图定做
油烟机清洗 锦江区家庭油烟机清洗 专业清洗油烟机公司
济南q326履带式喷砂机报价永兴机械厂质优价廉
豆制品机械 高档人造肉机 大豆蛋白挤出机 豆皮机设备
35KV欧式电缆分接箱DFP-35/630/
在成都办理了危险化学品经营许可证审批过程是
烟台液压缸 烟台高压重型液压缸 D25系列高压重型液压缸
供应苏州PE收缩膜
供应LM32019T.LM320192珊星电脑显示屏
迎泽区插花培训,自然派花艺培训,学插花大概多少钱
304不锈钢圆管外径51*1.1 不锈钢管
迪克森 高职员工餐厅 深圳订制厂家
嘉银 6KW 水式模温机
深圳五金工具、绝缘工具、DVE工具、工具箱、工具包