欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Java核心逻辑第12章JDK新特性课件.ppt

    • 资源ID:1285826       资源大小:389.20KB        全文页数:41页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java核心逻辑第12章JDK新特性课件.ppt

    第12章 JDK新特性,第12章 JDK新特性,回顾,class对象 获取类对象的方式 反射包(java.lang.reflect) 反射的作用,回顾 class对象,本章目标,静态导入可变长参数格式化输入输出枚举注解JDK6/JDK7新特性,本章目标静态导入,本章结构,JDK新特性,JDK6新特性,JDK7新特性,二进制字面值,脚本支持,JDK5新特性,访问javac的api,可变长参数,格式化输入/输出,枚举,注解,静态导入,本章结构JDK新特性JDK6新特性JDK7新特性二进制字面值,静态导入,通过静态导入可以在使用一个类型静态成员的时候,不 用书写类名,直接使用静态成员即可以前统一声明常量时,很多人选择在一个接口中声明许多静态常量,接口的用途是约定实现类有什么功能,用来声明常量显然不合理,现在可以统一在一个类中声明静态常量,并且在需要的地方使用静态导入注意:静态导入会降低程序的可读性,不要过多使用!,System.out.println(Math.PI);System.out.println(Math.abs(-1);,静态导入通过静态导入可以在使用一个类型静态成员的时候,不Sy,静态导入,import static java.lang.Math.*;import static java.lang.System.*;public class TestStatic public static void main(String args) System.out.println(PI);System.out.println(abs(-1);out.println(PI);,静态导入import static java.lang.Ma,可变长参数,可以使方法的参数个数可变,public static void print(String s) System.out.println(s);public static void main(String args) print();print(tom);print(tom,cat);public static void print(String. s) for (String string : s) System.out.println(string);,可变长参数 可以使方法的参数个数可变public stati,可变长参数,可变长参数其本质实际上就是数组,但比定义数组更加灵 活,public static void print1(String s) public static void print(String. s) for (String ss : s) System.out.println(ss);,可变长参数 可变长参数其本质实际上就是数组,但比定义数组更加,可变长参数,可以把main函数改写成可变长参数 一个方法中最多有一个可变长参数 可变长参数必须作为方法的最后一个参数,public static void main(String. args) print();print(tom);print(tom, cat);,可变长参数 可以把main函数改写成可变长参数 public,格式化的输入输出,JDK5.0提供了新的输入输出语句格式化输出语句 System.out.printf()String的静态方法:static String format(String format, Object. args)可以用来生成一个字符串,这个方法的用法和printf一模一样,printf显然在程序中毫无用途,String.format方法才是非常实用的,尤其在拼装字符串时,String name = 张三;int age = 20;System.out.printf(有个学生叫%s,他的年龄是%d。n, name, age);/ 创建格式化字符串String msg = String.format(有个学生叫%s,他的年龄是%d。, name, age);System.out.println(msg);,格式化的输入输出 JDK5.0提供了新的输入输出语句Str,格式化的输入输出,提供了更为简单的从命令行获取输入的工具类java.util.Scanner 不要关闭Scanner,如关闭了,则System.in也关闭了当调用nextInt()等方法时如果抛出异常(InputMismatchException),则这个Scanner对象不可以再继续使用,必须重新创建一个。,Scanner input = new Scanner(System.in);int i = input.nextInt();,格式化的输入输出 提供了更为简单的从命令行获取输入的工具类,枚举类型,一个类所创建的对象个数是固定的 枚举本质上还是类 enum关键字,enum Season SPRING, SUMMER, AUTUMN, WINTER,public class TestEnum public static void main(String args) Season season = Season.SPRING;,枚举类型 一个类所创建的对象个数是固定的enum Seaso,枚举类型,在没有枚举类型前 ,可以通过如下代码模拟枚举类型,public class TestSeason public static void main(String args) Season season = Season.SPRING;class Season public static final Season SPRING = new Season();public static final Season SUMMER = new Season();public static final Season AUTUMN = new Season();public static final Season WINTER = new Season();private Season() ,枚举类型 在没有枚举类型前 ,可以通过如下代码模拟枚举类型p,枚举特点,枚举类型的父类 java.lang.Enum name()ordinal(),public class TestEnum1 public static void main(String args) Season s = Season.SPRING;System.out.println(s.name();/ SPRINGSystem.out.println(s.ordinal();/ 0enum Season SPRING, SUMMER, AUTUMN, WINTER,枚举特点 枚举类型的父类 java.lang.Enumpu,枚举特点,枚举类型的父类 java.lang.Enum static T valueOf(Class enumType, String name) 极重要的一个静态方法,valueOf,可以用字符串来找到对应枚举对象。,public class TestEnum2 public static void main(String args) Season season = Enum.valueOf(Season.class, SPRING);System.out.println(season.name();,枚举特点 枚举类型的父类 java.lang.Enumpu,枚举特点,values(),public class TestEnum3 public static void main(String args) Season seasons = Season.values();for (Season season : seasons) System.out.println(name is + season.name() + ,ordinal + season.ordinal();,枚举特点 values()public class Test,枚举特点,枚举类型可以定义属性,并提供相应的方法,enum Season SPRING, SUMMER, AUTUMN, WINTER;private String name;public String getName() return name;public void setName(String name) this.name = name;,枚举特点 枚举类型可以定义属性,并提供相应的方法enum S,枚举特点,public class TestEnum public static void main(String args) Season s = Season.SPRING;s.setName(tomcat);System.out.println(s.getName();,枚举特点public class TestEnum ,枚举特点,枚举类型有构造方法 但只能是私有的 枚举类型可以显示提供构造方法,enum Season SPRING, SUMMER, AUTUMN, WINTER,枚举特点 枚举类型有构造方法 但只能是私有的 enum Se,枚举特点,enum Season SPRING(春天), SUMMER(夏天), AUTUMN(秋天), WINTER(冬天);private String name;Season(String name)this.name = name;public String getName() return name;public void setName(String name) this.name = name;,枚举特点enum Season ,枚举特点,枚举不能够继承 枚举类型默认是final修饰符修饰,也是不能被别的类继承 枚举可以提供抽象方法枚举支持switch case语句(java7中字符串也支持)枚举是绝对的单例,绝不会出现多个实例,即使反序列化都无法创建多个实例,用枚举来做单例非常简单直接且好用。,枚举特点 枚举不能够继承,枚举特点,enum Operator ADD public double calculate(double a, double b) return a+b; , SUBSTRACT public double calculate(double a, double b) return a-b; , MULTIPLY public double calculate(double a, double b) return a*b; , DIVIED/省略代码; public abstract double calculate(double a,double b);,枚举特点enum Operator,枚举特点,public class TestEnum public static void main(String args) Operator o = Operator.ADD;System.out.println(o.calculate(1, 2);,枚举特点public class TestEnum ,注解(Annotation),注解的概念 给程序员看的是注释(单行注释、多行注释、doc注释) 注解名 JDK中提供的注解OverrideDeprecatedSupperessWarnings,注解(Annotation) 注解的概念,注解,覆盖toString()方法,public class Worker private String name;public void m1() public String toString() return name;,注解 覆盖toString()方法public class,注解,使用注解后,编译器可以检查覆盖方法是否正确,public class Worker private String name;public void m1() Overridepublic String toStirng() return name;,注解 使用注解后,编译器可以检查覆盖方法是否正确public,注解,注解的分类标记注解单值注解多值/普通注解 注解的父类 java.lang.annotation.Annotation 自定义注解public interface 注解名 public interface Test,注解 注解的分类,注解,元注解Target限定注解的使用目标enum ElementType TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, ANNOTATION_TYPE, PACKAGE,注解 元注解,注解,元注解Retention指明注解信息的保存时间enum RetentionPolicySOURCE:注解信息只保存在源程序中,在类文件中不保存CLASS (Default):注解信息保存在类文件中,程序运行时不能通过反射找到RUNTIME:注解保存在类文件中,程序运行时通过反射API可以找到,注解 元注解,注解,完整的注解定义,Target(value = ElementType.TYPE )Retention(value = RetentionPolicy.RUNTIME)interface First Firstpublic class TestAnnotation private String name;public void m1() ,注解 完整的注解定义Target(value = El,注解,注解属性,Target(value = ElementType.TYPE )Retention(value = RetentionPolicy.RUNTIME)interface First String value();First(test)public class TestAnnotation private String name;public void m1() ,注解 注解属性Target(value = Eleme,注解,注解属性的类型共有24种基本类型, String, Class, enums, annotations, 以及它们的数组,注解 注解属性的类型共有24种,注解案例,通过注解设计一个自动测试的工具,public class TestMethod Test(parameter = corejava)public void m1(String s1) System.out.println(method m1 + s1);public void m2(String s2) System.out.println(method m2 + s2);,注解案例 通过注解设计一个自动测试的工具public cla,注解案例,Test注解的设计,Target( ElementType.METHOD )Retention(RetentionPolicy.RUNTIME)public interface Test String parameter();,注解案例 Test注解的设计Target( Elemen,注解案例,自动测试工具类的设计如何得知这个类拥有Test注解?如何获得Test注解中的参数?如何运行拥有注解的方法?,注解案例 自动测试工具类的设计,注解案例,ublic class TestAnnotation public static void main(String args) throws Exception / 获得反射需要的类对象Class c = TestMethod.class;TestMethod t = (TestMethod) c.newInstance();/ 获得所有的方法Method m = c.getDeclaredMethods();for (Method mm : m) / 判断哪个方法拥有Test标注if (mm.isAnnotationPresent(Test.class) / 获得Test标注Test tt = mm.getAnnotation(Test.class);/ 获得Parameter属性的值String name = tt.parameter();mm.invoke(t, name);,注解案例public class TestAnnotatio,Java SE 6: 脚本支持,为开发者提供了在同一应用中使用不同语言的能力使用Java库扩展脚本语言Sun的SDK中提供了JavaScript引擎Mozila Rhino引擎引擎在中示例:,/ 创建脚本引擎管理器ScriptEngineManager engineManager = new ScriptEngineManager();/ 获得脚本引擎ScriptEngine engine = engineManager.getEngineByName(js);/ 执行脚本try / 注意,这是JavaScript的语法,字符串可以用单引号包围/ 数值型的字符串可以当作数值来运算engine.eval(println(123 * 2); catch (ScriptException e) e.printStackTrace();,Java SE 6: 脚本支持为开发者提供了在同一应用中使用,Java SE 6: 访问编译器,提供对编译器javac的访问,用于动态生成代码Java工具或框架的开发者经常使用该功能,Java SE 6: 访问编译器提供对编译器javac的访问,Java SE 7: 更好的整型字面值,二进制字面值int mask = 0b101001;long l = 0b1101001010011L;数值的千分符表示long creditCardNumber = 1234_5678_9012_3456L;long socialSecurityNumber = 999_99_9999L;float pi = 3.14_15F;long hexBytes = 0 xFF_EC_DE_5E;long hexWords = 0 xCAFE_BABE;long maxLong = 0 x7fff_ffff_ffff_ffffL;byte nybbles = 0b0010_0101;long bytes = 0b11010010_01101001_10010100_10010010;,Java SE 7: 更好的整型字面值二进制字面值,概述,在本章讨论了:静态导入可变长参数格式化输入输出枚举注解JDK6/JDK7新特性,概述 在本章讨论了:,Java核心逻辑第12章JDK新特性课件,

    注意事项

    本文(Java核心逻辑第12章JDK新特性课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开