当前位置: 首页 > news >正文

网站建设分为多少模块我市建设车辆违章查询网站 病句

网站建设分为多少模块,我市建设车辆违章查询网站 病句,微信管理系统下载,酷炫网站源码反射概述 Java反射机制#xff1a; 是指在运行时去获取一个类的变量和方法信息。然后通过获取的信息来创建对象#xff0c;调用方法的一种机制。由于这种动态性#xff0c;可以极大的增强程序的灵活性#xff0c;程序不用在编译期就完成确定#xff0c;在运行期仍…反射概述 Java反射机制 是指在运行时去获取一个类的变量和方法信息。然后通过获取的信息来创建对象调用方法的一种机制。由于这种动态性可以极大的增强程序的灵活性程序不用在编译期就完成确定在运行期仍然可以扩展。 获取Class类的对象 案例 //Student类 public class Student {/*** 成员变量私有默认公共*/private String name;int age;public String address;//构造方法一个私有一个默认两个公共public Student() {}private Student(String name) {this.name name;}Student(String name, int age) {this.name name;this.age age;}public Student(String name, int age, String address) {this.name name;this.age age;this.address address;}/*** 成员方法一个私有四个公共*/private void function() {System.out.println(function);}public void method1() {System.out.println(method);}public void method2(String s) {System.out.println(method: s);}public String method3(String s, int i) {return s , i;}Overridepublic String toString() {return Student{ name name \ , age age , address address \ };} }public class Demo {public static void main(String[] args) throws ClassNotFoundException {//使用类的class属性获取该类对应的Class对象ClassStudent c1 Student.class;System.out.println(c1);//一个类在内存中只有一个字节码文件对象ClassStudent c2 Student.class;System.out.println(c1 c2);System.out.println(-------------------);/*通过调用对象的getClass()方法返回对象所属类的class对象该方法是Object类中的方法所有的Java对象都可以调用该方法*/Student stu new Student();Class? extends Student c3 stu.getClass();System.out.println(c1 c3);System.out.println(-------------------);//使用Class类中的静态方法forName(String className),返回对象所属类的class对象Class? c4 Class.forName(com.fanshe.Student);System.out.println(c1 c4);} }运行结果 class com.fanshe.Student true ------------------- true ------------------- true反射获取构造方法并使用 getConstructors()返回一个数组包含该Class对象中的public公共构造函数getDeclaredConstructors()返回一个数组包含该Class对象中的所有构造函数getConstructor(参数列表)获取指定的公共构造函数对象getDeclaredConstructor(参数列表)获取指定的构造函数对象newInstance(参数)构造方法创建对象setAccessible(boolean flag)值为true时取消访问检查 练习 public class Demo2 {public static void main(String[] args) throws Exception {//获取Class对象Class? c Class.forName(com.fanshe.Student);//getConstructors()返回一个数组包含该Class对象中的public公共构造函数Constructor?[] cons c.getConstructors();System.out.println(公共构造函数);for (Constructor? con : cons) {System.out.println(con);}//getDeclaredConstructors()返回一个数组包含该Class对象中的所有构造函数Constructor?[] dCons c.getDeclaredConstructors();System.out.println(所有构造函数);for (Constructor? dCon : dCons) {System.out.println(dCon);}System.out.println(指定的公共构造函数1);//getConstructor()返回指定的公共构造函数的对象//参数构造方法的参数 和 数据类型对应的字节码文件对象(Class对象)Constructor? con c.getConstructor();//公共构造函数的对象使用newInstance()创建实例对象//newInstance():构造方法创建对象Object obj con.newInstance();System.out.println(obj);System.out.println(指定的公共构造函数2);//基本数据类型 也可以通过.class 得到对应的Class类型System.out.println(c.getConstructor(String.class, int.class, String.class).newInstance(李白,22,西安));System.out.println(指定的构造函数);//getDeclaredConstructor():获取指定的构造函数//参数构造方法的参数 和 数据类型对应的字节码文件对象(Class对象)Constructor? dCon c.getDeclaredConstructor(String.class);//setAccessible():值为true时取消访问检查dCon.setAccessible(true);System.out.println(dCon.newInstance(杨玉环));} }运行结果 公共构造函数 public com.fanshe.Student(java.lang.String,int,java.lang.String) public com.fanshe.Student() 所有构造函数 public com.fanshe.Student(java.lang.String,int,java.lang.String) com.fanshe.Student(java.lang.String,int) private com.fanshe.Student(java.lang.String) public com.fanshe.Student() 指定的公共构造函数1 Student{namenull, age0, addressnull} 指定的公共构造函数2 Student{name李白, age22, address西安} 指定的构造函数 Student{name杨玉环, age0, addressnull}反射获取成员变量并使用 Class类中用于获取成员变量的方法 getFields()获取公共的成员变量getDeclaredFields()获取所有的成员变量getField(成员变量)获取指定的公共成员变量getDeclaredField(成员变量)获取指定的成员变量 Field类中给成员变量赋值的方法 set(Object obj,Object value)给obj方法实例中的成员变量赋值 练习 public class Demo3 {public static void main(String[] args) throws Exception {//获取Class对象Class? c Class.forName(com.fanshe.Student);//getFields()获取公共的成员变量Field[] fields c.getFields();System.out.println(获取公共的成员变量);for (Field field : fields) {System.out.println(field);}//getDeclaredFields()获取所有的成员变量Field[] df c.getDeclaredFields();System.out.println(获取所有的成员变量);for (Field field : df) {System.out.println(field);}System.out.println(获取指定的公共成员变量并赋值再创建对象);//获取指定的公共成员变量Field addressField c.getField(address);//获取指定的公共构造方法并创建方法实例Object obj c.getConstructor().newInstance();//给方法中的成员变量赋值addressField.set(obj,西安);//输出方法实例对象System.out.println(obj);System.out.println(获取指定的公共构造函数对象再实例化对象);//获取单个公共方法Constructor? con c.getConstructor();//创建方法实例Object obj1 con.newInstance();System.out.println(obj1);System.out.println(获取指定的成员变量并赋值再实例化对象);//获取指定的成员变量Field nameField c.getDeclaredField(name);Field ageField c.getDeclaredField(age);Field addField c.getDeclaredField(address);//取消访问检查nameField.setAccessible(true);ageField.setAccessible(true);addField.setAccessible(true);//给成员变量赋值nameField.set(obj1,胡辣汤);ageField.set(obj1,10);addField.set(obj1,北京);//输出对象System.out.println(obj1);} }运行结果 获取公共的成员变量 public java.lang.String com.fanshe.Student.address 获取所有的成员变量 private java.lang.String com.fanshe.Student.name int com.fanshe.Student.age public java.lang.String com.fanshe.Student.address 获取指定的公共成员变量并赋值再创建对象 Student{namenull, age0, address西安} 获取指定的公共构造函数对象再实例化对象 Student{namenull, age0, addressnull} 获取指定的成员变量并赋值再实例化对象 Student{name胡辣汤, age10, address北京}反射获取成员方法并使用 Class类中用于获取成员方法的方法 getMethods()获取全部的公共成员方法数组包含继承的方法getDeclaredMethods()获取全部的成员方法数组不包含继承的方法getMethod(“方法名”,参数类型.class)获取单个公共成员方法对象getDeclaredMethod(“方法名”,参数类型.class)获取单个成员方法对象 Method类中用于调用成员方法的方法 invoke(实体类对象方法参数列表)调用实体类对象的成员方法 练习 public class Demo4 {public static void main(String[] args) throws Exception {//获取Class对象Class? c Class.forName(com.fanshe.Student);System.out.println(获取全部的公共成员方法:);//getMethods()获取全部的公共成员方法包含继承的方法Method[] methods c.getMethods();for (Method method : methods) {System.out.println(method);}System.out.println(获取全部的成员方法:);//getDeclaredMethods()获取全部的成员方法不包含继承的方法Method[] dms c.getDeclaredMethods();for (Method dm : dms) {System.out.println(dm);}System.out.println(获取单个的公共成员方法1:);//getMethod(方法名,参数类型.class)获取单个的公共成员方法对象Method method1 c.getMethod(method1);//获取无参构造方法创建实体类对象Object obj1 c.getConstructor().newInstance();//invoke(实体类对象方法参数列表)调用对象的成员方法method1.invoke(obj1);System.out.println(获取单个的公共成员方法2:);Method method2 c.getMethod(method2,String.class);method2.invoke(obj1,马超);System.out.println(获取单个的公共成员方法3:);Method method3 c.getMethod(method3, String.class, int.class);//有返回值先接收一下Object obj2 method3.invoke(obj1, 赵云, 22);//输出返回结果System.out.println(obj2);System.out.println(获取单个的成员方法:);//getDeclaredMethod(方法名,参数类型)获取单个的成员方法对象Method dm c.getDeclaredMethod(function);//取消访问检查dm.setAccessible(true);dm.invoke(obj1);} }运行结果 获取全部的公共成员方法: public java.lang.String com.fanshe.Student.toString() public void com.fanshe.Student.method1() public java.lang.String com.fanshe.Student.method3(java.lang.String,int) public void com.fanshe.Student.method2(java.lang.String) public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public final void java.lang.Object.wait() throws java.lang.InterruptedException public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public boolean java.lang.Object.equals(java.lang.Object) public native int java.lang.Object.hashCode() public final native java.lang.Class java.lang.Object.getClass() public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll() 获取全部的成员方法: public java.lang.String com.fanshe.Student.toString() private void com.fanshe.Student.function() public void com.fanshe.Student.method1() public java.lang.String com.fanshe.Student.method3(java.lang.String,int) public void com.fanshe.Student.method2(java.lang.String) 获取单个的公共成员方法1: method 获取单个的公共成员方法2: method:马超 获取单个的公共成员方法3: 赵云,22 获取单个的成员方法: function反射练习-越过泛型检查 如何实现在ArrayList Integer 集合中添加一个字符串数据 public class Demo5 {public static void main(String[] args) throws Exception {//创建集合ArrayListInteger list new ArrayList();//添加数据list.add(10);list.add(20);list.add(30);//输出集合System.out.println(list);//利用反射在list中添加一个String数据Class? extends ArrayList lc list.getClass();Method ad lc.getMethod(add, Object.class);ad.invoke(list,hello);//输出添加String数据后的集合System.out.println(list);} }运行结果 [10, 20, 30] [10, 20, 30, hello]反射练习-运行配置文件指定内容 通过配置文件运行类中的方法 //老师类 public class Teacher {public void teach(){System.out.println(为师教你做人);} }//学生类 public class Student1 {public void study(){System.out.println(学生喜读春秋);} }#配置文件 classNamecom.fanshe.Teacher methodNameteach//测试类 public class Demo6 {public static void main(String[] args) throws Exception {//学生Student1 stu new Student1();stu.study();//老师Teacher tea new Teacher();tea.teach();System.out.println(-----配置文件实现操作-----------);//加载数据Properties pro new Properties();FileReader fr new FileReader(idea_test\\class.txt);pro.load(fr);fr.close();//获取配置文件中的内容String className pro.getProperty(className);String methodName pro.getProperty(methodName);//通过反射来使用Class? c Class.forName(className);//根据无参构造方法,创建实体类对象Object obj c.getConstructor().newInstance();//获取单个成员方法Method dm c.getDeclaredMethod(methodName);//取消访问权限dm.setAccessible(true);//调用方法dm.invoke(obj);} }运行结果 学生喜读春秋 为师教你做人 -----配置文件实现操作----------- 为师教你做人
http://www.tj-hxxt.cn/news/133851.html

相关文章:

  • 网站建设所需要的软件十大难进的互联网公司
  • 郑州网站建设企业推荐我有云服务器如何建站
  • 建设网站手机版怎么看一级还是二级域名
  • 重庆官方网站建设导入表格数据做地图网站
  • 学习网站开发心得体会学校网站的建设论文
  • 黄页网站怎么查wordpress主题手动安装
  • 网站模板定制app产品开发公司
  • 网站制作优化全包湖南企业seo优化报价
  • 怎么给网站做网站地图南京工程造价信息网
  • 做网站需要什么开发语言网站开发属于哪个税收分类
  • 重庆企业网站推广平台营销网站建设哪里好薇
  • 网站源码是什么龙岗网站设计资讯
  • 内江网站建设公司甘肃省城乡住房建设厅网站首页
  • 四川住房城乡建设厅官方网站公司网站建设代理
  • 看电视剧的免费网站大全手机企业网站制作
  • 网站设计模板是什么陕西省建设银行分行网站
  • 献县做网站价格三七游戏官网
  • 把网站做静态化是什么意思使用html5的网站
  • 网站不备案会有什么影响吗九歌人工智能诗歌写作网站
  • 网站开发外包费用的会计分录win 2012 iis 默认网站
  • 怎样做网站认证威海企业网站建设
  • 基于html做电商网站论文wordpress模板大前端
  • 网站推广的方式有哪些wordpress程序迁移
  • 网站建设鑫科技unity3d转行网站开发
  • 广州外贸营销型网站建设公司淘宝搜索热词排名
  • 网站功能建设流程图wordpress下载模板
  • 网站开发与软件销售南京建设网
  • 建设个人网站需要多少钱淮北做网站的公司
  • apache 配置网站有域名了怎么建设网站
  • 网站建设总结与心得体会电子商务经营范围有哪些?