您的位置:首页 > 职场人生

黑马程序员_Java高新技术一_增强FOR、枚举

2011-09-21 23:11 363 查看
---------------------- android培训java培训、期待与您交流! ----------------------

4.eclipse视图管理与程序调试

调试:双击添加断点,右键选择debug,选择要查看的变量值,右键选择watch就可以看到了

5.配置eclispe的编译与运行环境

设置javac和java 选择首选项,java版本要与javac的对应或比javac的高,即运行环境版本要对应或比编译器版本高

6.在eclispe中配置java模板代码

模板代码的应用 右键选择Surround With->try/catch Block 选择配置好的模板

添加java模板代码:首选项Preferences->java->Editor->Templates->New

如name:tryf

try{
${line_selection}(表示选择的内容)
}finally{
${cursor}(光标停靠位置)
}


java5的一些简单新特性

8.java5的静态导入

import语句可以导入一个类或某包的所有类,只是为了少写前缀

import static导入一个类中的某个静态方法或所以静态方法

如import static java.lang.Math.max;这样就可以直接调用max()而不加Math前缀了

9.可变参数

Overload和Override的区别

Overload是重载的意思,Override是重写。

可变参数举例:

add(int x,int... args){
int sum = x;
for(int i=0;i<args.length;i++){
sum += args[i];
}
return sum;
}


10.java5的增加for循环

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

注意:

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

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

如:
add(int x,int... args){
int sum = x;
for(int arg : args){
sum += arg;
}
return sum;
}


11.基本数据的自动拆装箱

装箱:自动把一个基本数据类型装成一个对象。如:Integer iObj=2;

拆箱:把对象转换成基本数据类型如:println(iObj+12);因为Integer不支持加法。

享元模式(flyweight):有很多很小对象,他们有很多相同的东西,那你就可以把他们变成一个对象,还有一些不同的东西变成外部的属性作为方法的参数来传入。

Integer num1=12;
Integer num2=12;
System.out.println(num1 == num2);//整数是一个字节就共享一个对象

Integer num3=129;
Integer num4=129;
System.out.println(num3 == num4);

Integer num5=Integer.valueOf(12);
Integer num6=Integer.valueOf(12);
System.out.println(num5 == num6);
结果:true

false

true

12.枚举的作用介绍

就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就报错

13.用普通类模拟枚举的实现原理

1. 私有的构造方法

2. 每个元素分别用一个公有的静态成员变量表示。

3. 可以有若干公有方法或抽象方法,例如,要提供nextDay方法必须是抽象的。

4.采用抽象方法定义nextday()将大量的if.else语句转移成了一个个独立的类。

14.java5的枚举的基本应用

public enum WeekDay{
SUN,MON,TUE,WED,THI,FRI,SAT;
}
WeekDay weekDay = WeekDay.FRI;
System.out.println(weekDay);
System.out.println(weekDay.name());
System.out.println(weekDay.ordinal());//排行
System.out.println(WeekDay.valueOf("SUN").toString());//转换为枚举元素
System.out.println(WeekDay.values().length);//把枚举元素放到数组


15.实现带有构造方法的枚举

public enum WeekDay{

SUN(1),MON(),TUE,WED,THI,FRI,SAT;  //SUN(1)就会指定带参数构造方法
private WeekDay(){
System.out.println("first");
}
private WeekDay(int day){//必须是私有
System.out.println("second");
}


16.实现带有抽象方法的枚举

public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){
this.time =time;
}
}

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

---------------------- android培训java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐