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

网站建设公司海外个人网站设计流程图

网站建设公司海外,个人网站设计流程图,海南新闻在线新闻中心,国内网站做国外服务器一、概述 我们都听说过java有个反射机制#xff0c;通过反射机制我们可以更深入的控制程序的运行过程。例如#xff0c;在程序进入到运行期间#xff0c;由用户输入一个类名#xff0c;然后我们可以动态获取到该类拥有的所有类结构、属性名和方法#xff0c;甚至还可以任意… 一、概述 我们都听说过java有个反射机制通过反射机制我们可以更深入的控制程序的运行过程。例如在程序进入到运行期间由用户输入一个类名然后我们可以动态获取到该类拥有的所有类结构、属性名和方法甚至还可以任意调用类的任意方法。听起来是不是很牛我也觉得比较牛挺有意思的所以对于不太熟悉的小伙伴而言那就来听我一一道来。 所以此期我们就来重点学习一下java的反射机制。 二、本期教学目标 了解什么是反射了解反射的优缺点熟悉通过反射获取java对象的方法java常用的反射机制apijava通过反射执行方法反射实例演示 三、正文 本文首先介绍一下java中class类与java反射的基础用法然后再结合应用具体介绍反射。 1️⃣概念 什么是反射在介绍反射之前我们先来了解两个概念编译器和运行期。 编译器编译器是把源代码交给编译器编译成计算机可执行的字节码文件的过程。运行期运行期是把编译好的字节码文件交给计算机(在内存)去执行的过程直到运行结束。 而java反射就是在程序处于运行状态中对于任意一个类都能够动态的获取到这个类的所有属性、方法对于任意一个对象都能调用它的任意方法和内部属性。这种动态获取信息以及动态调用对象方法属性的功能就被成为java的反射机制。总而言之java反射指的是程序在运行时能获取自身的所有信息,比如类名、类路径、包路径、构造方法、私有属性等等。 所以对于java程序只要你给定一个类名你就可以通过java反射获取到该类的所有信息。 2️⃣功能 对于java反射机制而言它主要提供了以下功能且这些功能都位于java.lang.reflect包中。 如下是对于程序中该reflect截图。 如下我就给大家诺列以下 获取任意一个对象所属的类(运行期)构造任意一个类的对象(运行期)判断任意一个类所具有的成员变量和方法(运行期)调用任意一个对象的方法(运行期)生成动态代理。 而想要知道一个类的属性和方法你必须先获取到该类的字节码文件对象。获取类信息时使用的就是class类的方法。所以你先要获取到每一个字节码文件对应的class类型对象。比如 Class aClass dog1.getClass(); 3️⃣常用Api 利用class类的对象aClass可以获取到的该类的所有信息比如类信息、Object信息。如下是列举出来的是通过反射可获取到的常用信息具体如下 getPackage():获取该类的存放路径。getName():获取该类的名称。getSuperclass():获取该类继承的类getlnterfaces():获取该类实现的所有接口getMethods():获取所有权限为 public 的方法getDeclaredMethods():获取当前对象的所有方法getClasses()获取所有权限为 public 的内部类getFields()获取所有权限为 public 的成员变量 4️⃣优缺点 对于反射虽然利大于弊但是不排除任意一个东西开发出来都没有任何缺点。比如对于java的反射机制。 优点能够程序运行时动态获取类的实例大大提高了系统的灵活性和扩展性。且对于java先编译后运行的机制而言更加方便灵活创建代码这些代码可以在运行时装配无需在组件之间进行源代码的链接更加的贴切面向对象。缺点反射会消耗一定的系统资源。因此如果不需要动态的创建一个对象那就不需要使用反射。而且通过反射手法在调用对象方法时可以忽略权限检查就能获取到该类的私有属性私有方法可能会导致破坏类的封装性而导致安全问题。 5️⃣实例演示 如下我就通过列举一个类通过实例化后来通过反射机制来动态获取该对象的一些信息。 具体演示代码如下 Data public class Dog extends Animal {//子类private String active;Overridepublic void eat() {System.out.println(我是狗狗吃骨头);}//独有功能public void lockHome() {System.out.println(我是狗狗我会看家);} } 然后我再来定义一个main函数进行测试获取一下该对象名称 public static void main(String[] args) {Animal dog new Dog();//向上转型Class dogClass dog.getClass();System.out.println(该类的名称为dogClass.getName());} 运行截图如下  获取该dog对象包名 public static void main(String[] args) {Animal dog new Dog();//向上转型Class dogClass dog.getClass();System.out.println(该类的包名为dogClass.getPackage());} 运行截图如下  获取该dog对象的所有方法。 public static void main(String[] args) {Animal dog new Dog();//向上转型Class dogClass dog.getClass();Method[] methods dogClass.getDeclaredMethods();System.out.println(该类的所有方法为methods);} 运行截图如下   获取所有权限为 public 的内部类。 public static void main(String[] args) {Animal dog new Dog();//向上转型Class dogClass dog.getClass();Class[] classes dogClass.getClasses();System.out.println(获取所有权限为public 的内部类 classes);} 运行截图如下
http://www.zqtcl.cn/news/989777/

相关文章:

  • 嵌入式软件开发前景怎么样百度官方优化指南
  • 网站访问速度优化工具网页设计模板图片大全
  • 哪里有手机网站制作公司网页设计与制作心得体会800字
  • 湖南建设厅网站首页简述网站建设的基本思路
  • 蚌埠公司做网站网站开发月薪
  • 怎么更换网站logo推荐几个没封的正能量网站
  • 开网站的宣传图片怎么做php网站建设面试
  • 哪些网站可以下载视频网站建设评价量规
  • 惠州市建设局网站网站模块设计怎么做
  • 群晖可不可以做网站用如何查询商标是否已经被注册
  • 北京欢迎你网站制作公司建设厅和应急管理厅焊工证区别
  • 如何开办网站微信公众平台号申请注册
  • 网站建设找哪个平台浦东区建设工程监督网站
  • 如何创业做网站设计公司工作室
  • 游戏网站建设多少中国煤炭建设协网站
  • 动态图表网站宁津做网站
  • 黑龙江生产建设兵团各连网站成功网站建设案例
  • 一级a做爰精免费网站肇庆网站制作软件
  • wordpress加分页北京优化生育
  • 乐至建设局网站工程项目管理软件哪个好
  • 太原公司网站建立wordpress插件直播
  • 比较有名的diy制作网站做照片视频的网站
  • 河北石家庄建设网站wordpress nginx apache
  • 上海免费网站建设品牌wordpress主题安装失败下载失败
  • 买公司的网站商城系统开发
  • 网页设计国外设计欣赏网站深夜视频在线免费
  • 做网站怎么租用服务器杭州网站建设hzyze
  • .asp 网站北京最新防疫信息
  • 网站上传用什么软件做视频教程114查询
  • 网站小图标素材网站开发需要提供哪些东西