dk1.5高新技术(一)


1.eclipse的使用技巧

Workspace与project
Perspective与view
设置整个workspace的javac与java。
设置单个工程的javac与java。
高版本的java能否运行低版本的javac编译的程序?可以 向下兼容
低版本的java能否运行高版本的javac编译的程序?不行
快捷键的绑定与代码模板 windows->preferences-> general->keyswindows->preferences->java->templates
利用快捷键提高工作效率
在应用中具体举例讲解

必须要求:会切换工作间与导入项目 file->switch workspace->other

2.静态导入

import语句可以导入一个类或某个包中的所有类。

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

作用:当需要大量调用其他类的静态方法时 可省去写类名的麻烦

弊端:容易混淆了方法

import static java.lang.Math.*;

public class StaticImport {

public static void main(String[] args) {

int i = 1;

try{

i++;

}finally{

System.out.println("template");

}

System.out.println(i);

System.out.println(max(3, 6));

System.out.println(abs(3-6));

}

}


3.可变参数

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

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

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

可变参数的特点

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

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

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

public class VariableParameter {

public static void main(String[] args) {

System.out.println(VariableParameter.add1(2,3));

System.out.println(add1(5));

System.out.println(VariableParameter.add2(10, 2,4));

System.out.println(add2(7));

}

 

public static int add1(int ... args){

int sum = 0;

for(int i : args)

sum += i;

return sum;

}

public static int add2(int x,int ... args){

int sum = x;

for(int i : args)

sum += i;

return sum;

}

}


4.增强for循环

语法

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

type前可以加修饰符,如final

注意事项

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

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

List<String> list=new ArrayList<String>();

for(String s:list){

System.out.println(s);

}

 

5.基本数据类型的自动拆箱与装箱

自动装箱:

  Integer num1 = 12;

自动拆箱:

System.out.println(num1+12);



6.枚举

为什么要有枚举

问题:要定义星期几或性别的变量,该怎么定义?

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则编译器就会报错。枚举可以让编译器在编译期就可以控制源程序中的非法值。

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

  采用抽象方法定义nextDay就将大量的if.else语句转移成一个个独立的类。

     注意:枚举类的构造方法为private(不可改变,可用来实现单例模式)

  枚举的基本应用

  总结:枚举是一种特殊的类,每个元素可以看成是该类的一个实例对象(下面做出讨论)

示例1:



可以看到 main()方法中只调用了一个Weekend.QUESDAY元素 却初始化了所有的枚举元素

通过枚举元素可以调用枚举类的内部方法

示例2:



可以看到这里的元素MONDAY相当于一个内部类 实现了weekend的抽象方法show()(有点类似于匿名类的写法)

可以把MONDAY看成一个实现了父接口的的子类

示例3:



可以看出 MONDAY并不是Weekend的一个实例


总结:

1.枚举类的构造方法私有(即便通过反射也无法创建示例(单例))

2.调用一个枚举元素 就初始化所有的枚举元素(如示例1)

3.枚举元素必须实现枚举类内部所有的抽象方法

4.枚举元素不是枚举类的一个实例(见示例3)


enum的一些方法:

非静态方法:(所有的枚举类都继承了Enum方法)

        1String toString() ;//返回枚举量的名称

        2int ordinal() ;//返回枚举值在枚举类中的顺序,按定义的顺序排

        3Class getClass() ;//获取对应的类名

        4) String name();//返回此枚举常量的名称,在其枚举声明中对其进行声明。

静态方法:

        1valueOf(String e) ;//转为对应的枚举对象,即将字符串转为对象

        2values() ;//获取所有的枚举对象元素


关于枚举在单例中的应用 再之后的单例模式章节中单独讲解


-version1.0 2015.1.27















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值