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

网站怎么上传源码网络营销制度课完整版

网站怎么上传源码,网络营销制度课完整版,设计logo的小程序,天津网站的优化一、反射 1、反射机制定义及作用 反射是允许程序在运行时检查和操作类、方法、属性等的机制#xff0c;能够动态地获取信息、调用方法等。换句话说#xff0c;在编写程序时#xff0c;不需要知道要操作的类的具体信息#xff0c;而是在程序运行时获取和使用。 2、反射机制…一、反射 1、反射机制定义及作用 反射是允许程序在运行时检查和操作类、方法、属性等的机制能够动态地获取信息、调用方法等。换句话说在编写程序时不需要知道要操作的类的具体信息而是在程序运行时获取和使用。 2、反射机制的原理 程序运行时JVM会将编译好的 .class 文件代表一个类解析为 java.lang.Class 类的实例这个实例包含了该类的所有信息。通过反射机制可以用到这个实例来获取该类的信息并进行操作。 下面介绍反射的相关类。以 Student 类为例子 public class Student {//私有属性nameprivate String name 小帅;//公有属性agepublic int age 18;//不带参数的构造方法public Student(){System.out.println(Student());}private Student(String name,int age) {this.name name;this.age age;System.out.println(Student(String,name));}private void eat(){System.out.println(i am eat);}public void sleep(){System.out.println(i am pig);}private void function(String str) {System.out.println(str);}Overridepublic String toString() {return Student{ name name \ , age age };} } Class 在 java.lang 中不需要导包。其它三个都在 java.lang.reflect 中。 3、Class 类 代表类的实体。 获取 JVM 给类解析的 Class 对象 其它方法 4、Field 类 代表类的属性。 getField(String name)获得指定公有属性对象。getField()获得所有公有属性对象。getDeclaredField(String name)获得某个属性对象。不限于公有getDeclaredField()获得所有属性对象。 属性对象.get(对象) 表示获取指定对象的某属性静态属性不需对象参数填 null。 5、Method 类 代表类的方法。 6、Constructor 类 代表类的构造方法。 利用构造方法对象获得类的实例 ‘ 7、使用反射动态加载类并创建对象 编写一个程序在运行时根据用户输入的类名来动态加载类并创建对象调用其 draw 方法。 import java.util.Scanner;// 定义一个 Shape 接口 interface Shape {void draw(); }// 定义 Circle 类实现 Shape 接口 class Circle implements Shape {Overridepublic void draw() {System.out.println(绘制一个圆形);} }// 定义 Rectangle 类实现 Shape 接口 class Rectangle implements Shape {Overridepublic void draw() {System.out.println(绘制一个矩形);} }public class DynamicClassLoadingExample {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.println(请输入要加载的类名如 Circle 或 Rectangle);String className scanner.nextLine();try {// 根据用户输入的类名获取 Class 对象Class? clazz Class.forName(className);// 创建该类的实例Shape shape (Shape) clazz.getDeclaredConstructor().newInstance();// 调用 draw 方法shape.draw();} catch (Exception e) {e.printStackTrace();}scanner.close();} } 反射优点让程序更灵活动态加载类和方法、可以访问和修改私有成员。 反射缺点性能开销大、破坏封装性和安全性、程序不易读。 二、枚举 1、定义及作用 一组常量比如颜色它们是同一类我们想把这组常量组织在一起就用枚举。作用是与没有意义的数字区分开来如果定义一组常量就要用数字表示它们。例子 public enum Color {RED, GREEN, BLUE;public static void main(String[] args) {Color color Color.BLUE;switch (color) {case RED:System.out.println(RED);break;case GREEN:System.out.println(GREEN);break;case BLUE:System.out.println(BLUE);break;default:System.out.println(default);break;}} } 枚举类默认继承了 java.lang.Enum。枚举常量的默认是 public static final 修饰。 2、常用方法 枚举类型能够使用这些方法是因为默认继承了 Enum 类: 但是可以发现Enum 类中没有 values 方法。这是因为自定义枚举类型中枚举常量的数量、类型都是不确定的如果 values 封装在 Enum 类中就需要在运行时动态确定每个枚举常量需要用到反射破坏了封装性、增强了复杂性等。实际上编译器编译时会为每个枚举类型自动加上 values 方法返回的数组在编译时就确定。 3、构造方法 枚举相当于是类可以有属性、构造方法、方法。构造方法默认私有且只能。这样保证了枚举实例的唯一性。 查看构造函数的实际参数有哪些 多了 String 和 int 类型参数因为枚举类默认继承了 Enum其本身有 name 和 ordinal 属性隐藏了 super(name, ordinal) 所以 Color 构造函数会多 2 个参数。 4、枚举和反射 通过反射获取枚举类的实例 出现错误 查看 newInstance 源码 因此不能通过反射创建枚举类的实例。这样设计的目的是让枚举类只有一个实例防止反射攻击。由私有构造函数、防反射攻击这两个特点得知枚举实现单例模式一种创建型模式它确保一个类只有一个实例并提供一个全局访问点来获取这个实例是安全的。 枚举优点简单安全。 枚举缺点不能继承。 5、枚举实现单例模式 后续学了单例模式补充。 三、Lambda 表达式 1、定义及作用 相当于方法但是比方法更简化。语法 (形参列表)-表达式(形参列表)-{代码块}// 参数类型可以省略要省全都省只有一个参数可以省略圆括号。// 返回一个值或者不返回值// 只有一条 return 语句可省略 return 2、函数式接口 函数式接口一个接口只有一个抽象方法。FunctionalInterface 注解以函数式接口的标准只有一个抽象方法要求接口检查作用。lambda 可简化匿名内部实现函数式接口。 几个函数式接口代码 //无返回值无参数 FunctionalInterface interface NoParameterNoReturn {void test(); } 使用匿名内部类实现接口重写方法 使用 lambda 实现接口重写方法 NoParameterNoReturn noParameterNoReturn ()-{System.out.println(hello);}; 3、变量捕获 匿名内部类中可捕获外部变量。如果想修改捕获的变量那该变量必须被 final 修饰否则报错。lambda 表达式同理。 int a 10;PriorityQueueInteger priorityQueue new PriorityQueue(new ComparatorInteger() {Overridepublic int compare(Integer o1, Integer o2) { // a 99; 不允许修改未被 final 修饰的外部变量System.out.println(a); // 变量 a 捕获return o1.compareTo(o2);}}); 4、Lambda 在集合中的应用 lambda 表达式作为以上方法的参数实现接口中的方法。  4.1、Collection 接口 以 forEach 为例 源码如下Consumer 是函数式接口accept 是实现的抽象方法。 实现函数式接口 4.2、List 接口 以 sort 为例 源码 在 Java 中所有类都直接或间接地继承自 Object 类因此Comparator 接口继承了 Object 类的 equals 方法。它不是 Comparator 接口自身定义的抽象方法因此不违反函数式接口的定义规则。 FunctionalInterfacepublic interface ComparatorT {int compare(T o1, T o2);boolean equals(Object obj); // 继承自 Object不影响函数式接口......} 实现 4.3、Map 接口 以 forEach 为例 源码 实现 5、总结 优点语句简洁、方便函数式编程替换匿名内部类、改善集合操作。 缺点可读性差、不易调试。
http://www.eeditor.cn/news/124250/

相关文章:

  • 网站做优化有用吗个人接做网站多少钱
  • 如何管理网站文件wordpress 迁移 步骤
  • 网站开发注意软件开发设计文档示例
  • 手机版网站建设珠宝行业网站建设
  • 如何做外贸网站wordpress 极简模板
  • 网站 建设 领导小组a5网站诊断
  • 网站排名关键词ios wordpress
  • 做电影网站怎么选服务器WordPress老文章提示
  • 自己做手机版网站制作河南省建设部网站官网
  • 镇江企业网站排名优化网站建设交互效果
  • 怎么查看网站后台地址高端网站改版
  • 三网合一网站远吗云南网站建设选天软
  • 盗版小说网站怎么做的typo3 wordpress
  • 安家堡网站建设怎么把底部的wordpress
  • 高密做网站的价格曹鹏wordpress视频教程
  • 网店运营包括哪些网站优化大赛
  • 做网站有什么好书籍湖南网络营销企业
  • 母婴网站建设方案科学规划网页的做法是()
  • 关于电子商务的网站推广方案购买一个网址多少钱
  • 手机网站在线咨询代码北京用网站模板建站
  • 定制网站制作费用免费cn域名注册
  • 站酷网素材图库免费下载郑州竞价代运营公司
  • 山东省建设厅教育网站专业的商城网站开发
  • 网站建设费是什么意思浙江省建设信息网官网
  • tor网站建设建站教程图解
  • 有哪里可以做兼职翻译的网站网站搭建空间
  • 有网站有安全狗进不去了网站设计中下拉列表怎么做
  • 营销网站首页设计微网站搭建费用
  • dnf卖飞机的网站怎么做的深圳网站设计三把火
  • 怎么调网站兼容性云伙伴小程序开发公司