Java5.0 共有九个新的特性(1)

Java5.0 共有九个新的特性
 1、泛型技术
 2、枚举技术
 3、自动装箱和拆箱
 4、可变参数
 5、注解技术
 6、for/in语句 
 7、静态导入
 8、字符串格式化

 9、Java5.0线程并发库 java.util.concurrent

特性一:泛型技术


泛型应用 一 :类型安全的集合

 List的三种遍历方式:


   Set的两种遍历方式


   Map的两种遍历方式



泛型应用二:自定义泛型










泛型技术 : 任意类型
泛型通配符: 任意泛型  --- ?  

通配符的上下边界

 ? extends Integer : Integer的任意子类型 (上边界)
 ? super Integer : Integer的任意父类型 (下边界)




 特性二:枚举技术

为什么要有枚举:数据在一定范围内取值
 通过enum 定义枚举
 public enum 枚举类名称{
    对象1,对象2,对象3... 对象n ; 
 }

枚举入门案例:员工和角色
 
 // 带有枚举功能自定义类
 class Role2 {
  public static final Role2 BOSS = new Role2();
  public static final Role2 MANAGER = new Role2();
  public static final Role2 WORKER = new Role2();
 
  // 不允许你自定义对象 构造函数私有
  private Role2() {
  }
 }
 
 简化为 :
 // 枚举类定义
 enum Role3 {
  BOSS, MANAGER, WORKER;
 }
 * Role3 相当于一个class , BOSS和MANAGER、WORKER都是Role3类对象 (public static final )
 * 确保构造方法 private
 * JDK5 switch 语句可以用 5种类型 byte short int char + enum 
 * JDK7 switch 语句可以用 6种类型 byte short int char + enum + String
 




<--------枚举对象的API使用: 枚举对象、枚举对象下标、枚举对象名称表示之间的转换-------->


package cn.itcast.enumtest;
 
 import org.junit.Test;
 
 /**
  * 枚举对象的API使用: 枚举对象、枚举对象下标、枚举对象名称表示之间的转换
  * 
  * @author seawind
  * 
  */
 public class EnumTest2 {
  @Test
  public void demo3() {
  // 已知枚举对象 下标 。获得枚举对象 和 名称
  int index = 2;
 
  // 转换下标到对象
  Category[] values = Category.values();
  Category category = values[index];
 
  // 输出名称 name
  System.out.println(category.name());
 
  }
 
  @Test
  public void demo2() {
  // 已知枚举对象名称,转换枚举对象 获得下标
  String name = "数码产品";
 
  // 转换name 到枚举对象
  Category category = Enum.valueOf(Category.class, name);// 1种
  Category category2 = Category.valueOf(name);// 2种
 
  // 输出下标 ordinal
  System.out.println(category.ordinal());
  System.out.println(category2.ordinal());
  }
 
  @Test
  public void demo1() {
  // 已知 枚举对象 ---- 获得对象名称和下标
  Category category = Category.电脑办公;
 
  // 获得对象名称 name()
  System.out.println(category.name());
 
  // 获得对象下标 ordinal()
  System.out.println(category.ordinal());
  }
 }
 
 enum Category {
  家用电器, 数码产品, 日常用品, 电脑办公;
 }


所有定义枚举对象 都将自动继承 java.lang.Enum 类 
 name()  返回枚举对象名称
 ordinal() 返回枚举对象下标
 valueof(Class enumClass, String name) 转换枚举对象
 
 在自定义枚举类经过 编译后,自动添加两个方法
 valueof(String name)  转换枚举对象
 values()  获得所有枚举对象数组


 单态设计模式:饿汉和懒汉

// 单态 : 饿汉和懒汉 ---- 一个类只能有一个对象
// 要点:private static 成员对象 + private 构造函数


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值