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

---------------------- 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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值