2010年Java高新技术A(1)

1、张老师课上涉及相关名词解释

1)  IDE  Integrity DevelopmentEnviroment 集成开发环境

2)  JavaEE  java EnterpriseEdition java企业版开发工具

3)  JMS  java MessageService java消息服务,是一个java平台中关于面向对象中间件的API,      用于在两个应用程序间,或分布式系统中,发送消息,进行异步通信。

4)  JMX  java Management Extensionjava管理扩展,是一个味应用程序,设备系统植入管理功能的框架

5)  JNDI  java naming anddirectory interface  java命名和目录接口 是一组在java应用中访问命名和目录服务的API命名服务 将名称和对象联系起来,是的哦我们可以用名称访问对象,目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

6)  JDBC java database Connectivity  java数据库连接 是一种用于执行SQL语句的javaAPI,可以为多种关系数据库提供统一访问,它由一组用java语言编写的接口组成。

2、JDK1.5新特性

1) 静态导入

         Import语句可以导入一个类或者某个包中的所有类,

         Importstatic 语句导入一个类中的某个静态方法或者所有的静态方法

         举例

                   importstatic java.lang.Math.sin;

                   importstatic java.lang.Math.*;

2)可变参数

         问题 一个方法接受的参数个数不固定,例如

         System.out.println(countScore(2,3,5));

System.out.println(countScore(1,2,3,5));

可变参数的特点

         只能出现在参数列表的最后,

         … 位于变量类型和变量名之间,前后有无空格都可以

         调用可变参数的方法时,编译器为该可以阿邦参数隐含创建一个数组,在方法体中以数组形式访问可变参数

举例

  1.  public static void main(String[] args){  
  2.      System.out.println(countScore(2,3,5));  
  3. System.out.println(countScore(1,2,3,5));  
  4.   
  5. }  
  6. public static int add(int x, int …args){  
  7.     int sum =x;  
  8.     for(int i =0;i<args.lenth;i++){  
  9.         sum+=args[i];  
  10. }  
  11. return sum;  
  12. }  


3)增强for循环

         语法

         for(type变量名 :集合变量名){…}

         注意事项

                   迭代变量必须在()中定义。

                   集合变量可以是数组或实现了Iterable接口的集合类

         举例

  1. public static int add(int x,int ...args) {  
  2.     int sum = x;  
  3.     for(int arg:args) {  
  4.         sum += arg;  
  5.     }  
  6.     return sum;  
  7. }  

 

4)基本数据类型的自动装箱与拆箱

         自动装箱: 基本类型自动转为包装类 intà Integer

         自动拆箱: 包装类自动转为基本类型 Integeràint 

  1. int a = 3;  
  2. Collection c = new ArrayList();  
  3. c.add(a);//自动转换成Integer.  
  4.   
  5. Integer b = new Integer(2);  
  6. c.add(b + 2);// 这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.  

 

5) 枚举

         枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。

 普通类如何实现枚举功能,定义一个weekday的类来模拟枚举功能

         私有的构造方法,每一个元素分别用一个共有的静态成员变量表示,可以有若干共有方法或者抽象方法,采用抽象方法定义nextDay就将大量的if else语句转移成一个个独立的类。

枚举的基本应用

 

  1. public abstract class WeekDayTest {    
  2.     public WeekDayTest(){}    
  3.     public final static WeekDayTest SUN = new WeekDayTest(){    
  4.         public WeekDayTest nextDay(){    
  5.             return MON;    
  6.     }};    
  7.     public final static WeekDayTest MON = new WeekDayTest(){    
  8.         public WeekDayTest nextDay() {    
  9.             return SUN;    
  10.     }};    
  11.     public abstract WeekDayTest nextDay();    
  12.     public String toString(){    
  13.         return this==SUN ? "SUN" : "MON";    
  14. }}    

枚举类 相当于一个类,其中也可以定义构造方法,成员变量,普通方法和抽象方法。

枚举源必须位于枚举题中的最开始部分,枚举元素列表后要有分号与其他成员分隔。把枚举中的成员方法或变量等放在枚举元素的前面。编译器器报告错误。

  1. public enum WeekDay{  
  2.         SUN(),MON,TUE,WED(1),THI,FRI,SAT;  
  3.         //构造方法必须是似有的 必须在成员列表下面  
  4.         private WeekDay(){System.out.println("调用了无参数构造方法");}  
  5.         private WeekDay(int day){System.out.println("调用了又参数的构造方法");}  
  6.           
  7.     }  

 

这段代码在初始化的时候会打印三个调无参一个有参,三个无参,在元素初始化的时候会调用构造函数。

当枚举只有一个成员时就可以作为一种单例的实现方式

枚举不能有public的构造函数,这样做可以保证客户端代码没有办法建立一个enum实例。

所有的枚举值都是public static final的,在枚举类里面的其他费枚举变量可以用任何规则修饰符

Enum默认实现了java.lang.Comparable接口

Enum重载了toString方法.

Enum 提供了一个valueof 方法 是与toString队形的。还提供了values方法,可以遍历所有的枚举值

Enum还有一个oridinal的方法,该方法返回枚举值在枚举类中的顺序,这个顺序根据枚举值声明的顺序而定

6)泛型 后续会介绍泛型。

posted @ 2013-04-09 19:00  谷文仁  阅读(280)  评论(0编辑  收藏  举报