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

上海专业做网站建设公司天津百度关键词推广公司

上海专业做网站建设公司,天津百度关键词推广公司,伊春网站制作,大网站建设公司动态 VS 静态语言 动态语言:运行时,可以改变其结构。 Object-C、C#、JS、PHP、Python JS 就是动态语言。 function f() {var x "var a3; var b5; alert(ab)";eval(x); }静态语言:运行时,结构不可变。 Java、C、C J…

动态 VS 静态语言

动态语言:运行时,可以改变其结构。

Object-C、C#、JS、PHP、Python
JS 就是动态语言。

function f() {var x = "var a=3; var b=5; alert(a+b)";eval(x);
}

静态语言:运行时,结构不可变。

Java、C、C++
Java 不是动态语言,但可称为“准动态语言”——反射。

Reflection(反射)

  • 是Java被视为动态语言的关键。
  • 反射机制允许程序在执行期间,借助 Reflection API 取得任何类的内部消息,并能直接操作任意对象的内部属性及方法。

对象就像一面镜子,透过镜子看到类的结构——反射。

正常方式:引入需要的“包类”名称 → new实例化 → 取得实例化对象
反射方式:实例化对象 → getClass()方法 → 得到完整的“包类”名称

为什么可以这样?

一个类被加载后,类的整个结构信息都会被封装在一个Class类型的对象中(一个类在内存中只有一个Class对象)。

实例

public class Test {public static void main(String[] args) throws ClassNotFoundException {Class c1 = Class.forName("com.pojo.User");}
}//实体类:pojo/entity
class User {...}

Class类

  • Class 本身是一个类
  • Class 对象只能由系统建立
  • 一个加载的类在 JVM 中只会有一个Class对象
  • 一个Class对象对应的是一个加载到JVM中的一个.class文件
  • 每个类的实例都会记得自己是由哪个Class实例所生成的
  • 通过 Class 可以完整地得到一个类中的所有被加载的结构
  • Class类是Reflection的根源,针对任何你想动态加载、运行的类,唯有先获得相应的Class 对象
//Person person = new Person();
Class c1 = person.getClass();
Class c2 = Class.forName("Person");
Class c3 = Person.class;Class c4 = Integer.TYPE;//获得父类类型
Class c5 = c1.getSuperclass();
System.out.println(c5);

哪些类型有Class对象

  • class(外部类、成员(成员内部类、静态内部类)、局部内部类、匿名内部类)
  • interface(接口)
  • [](数组)
  • enum(枚举)
  • annotation(注解)
  • 基本数据类型
  • void
Class objectClass = Object.class; //类
Class comparableClass = Comparable.class; //接口
Class aClass = String[].class; //一维数组
Class aClass1 = int[][].class; //二维数组
Class overrideClass = Override.class; //注解
Class elementTypeClass = ElementType.class; //枚举
Class integerClass = Integer.class; //基本数据类型
Class voidClass = void.class; //void
Class classClass = Class.class; //Class
c1.getName(); //获得包名+类名
c1.getSimpleName(); //获得类名
//获得类的属性
Field[] fields = c1.getFields(); //只能找到public属性
Field[] declaredFields = c1.getDeclaredFields(); //找到全部的属性Field field = c1.getField("id");
Field name = c1.getDeclaredField("name");//获得类的方法
Method[] methods = c1.getMethods(); //获得本类及其父类的全部public
Method[] declaredMethods = c1.getDeclaredMethods(); //获得本类的所有方法//因为有重载,所以需要指定参数类型
Method getId = c1.getMethod("getId", null);
Method setId = c1.getMethod("setId", String.class);//获得指定的构造器
c1.getConstructors();
http://www.hkea.cn/news/520133/

相关文章:

  • 青岛网站建设公司排行外链工具在线
  • 网站怎么做显得简洁美观seo数据是什么意思
  • 阿里巴巴开通诚信通后网站怎么做网络优化网站
  • 东莞手机网站价格便宜个人免费建站软件
  • 电子商务网站建设的步骤一般为百度100%秒收录
  • 做企业网站怎么样免费的推广软件下载
  • 拓普网站建设美国搜索引擎
  • 网站开发者工资冯耀宗seo视频教程
  • 软件开发各阶段工作量比例搜索引擎优化的基础是什么
  • 网站怎么做才能将名声打响云搜索app
  • 南阳做网站优化哪家好一级域名生成二级域名
  • 3322动态域名官网郑州seo联系搜点网络效果好
  • 网络营销渠道的类型河北seo基础教程
  • 做微信网站多少钱seo内部优化包括哪些内容
  • 中国城乡建设网站网络优化公司排名
  • 个人网站做淘宝客教程torrentkitty磁力搜索引擎
  • 广州北京网站建设seo培训讲师招聘
  • 手机上免费自己做网站网络营销案例分享
  • 长沙大型网站建设谷歌账号
  • 大兴德艺网站建设发布悬赏任务的推广平台
  • html5制作网站模板百度产品大全首页
  • 贵阳网站建设贵阳百度推广怎么推广
  • 瓮安建设局网站google play三件套
  • 大型门户网站模板营销神器
  • 学设计的网站都有哪些seo和sem
  • 如何做网站流量买卖营销型网站的特点
  • 装修设计网站哪个平台最好软文推广多少钱一篇
  • 怎么做微信里的网页网站链接网站设计平台
  • 长宁专业做网站网络营销案例分享
  • 哈尔滨专业建网站哪家好码迷seo