---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
Eclipse快捷键设置:
Preferences->General->Keys中设置! 内容助理context assist
基本数据的自动拆装箱:
Integer i1 = 137;//装箱(-128~127)
System.out.println(i1+98);//拆箱
享元设计模式 flyweight:
享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元
Integer i3 = Integer.valueOf(3);
Integer i4 = Integer.valueOf(3);
System.out.println(i3==i4);
jdk1.5新特性:枚举
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。如果枚举只有一个成员,就可以作为一个单例的实现方式。
注:枚举也是类,它没有构造方法。我们可以给他定义构造方法。枚举中的构造方法必须是private私有的,并且需要在元素列表的后面。
用普通类模拟枚举例子:
WeekDay.class
package com.itheima;
public abstract class WeekDay {
private WeekDay(){}
public final static WeekDay SUN = new WeekDay(){ //匿名内部类
@Override
public WeekDay nextDay() { //重写父类方法
// TODO Auto-generated method stub
return MON;
}
};
public final static WeekDay MON = new WeekDay(){ //匿名内部类
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return SUN;
}};
public abstract WeekDay nextDay(); //采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。
/* public WeekDay nextDay()
{
if(this == SUN){
return MON;
}
else{
return SUN;
}
}*/
public String toString(){
return this == SUN?"SUN":"MON";
}
}
EnumTest.class
package com.itheima;
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay weekDay = WeekDay.MON;
System.out.println(weekDay.nextDay());
}
}
枚举的基本应用:
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay1 weekDay1= WeekDay1.FRI;
System.out.println(weekDay1);
System.out.println(weekDay1.name());
System.out.println(weekDay1.ordinal());
System.out.println(WeekDay1.valueOf("SUN").toString());
}
public enum WeekDay1{
SUN,MON,TUE,SED,THI,FRI,SAT
}
}
public enum WeekDay{
SUN(1),MON(),TUE,WED,THI,FRI,SAT;
private WeekDay(){System.out.println("first");}
private WeekDay(int day){System.out.println("Second");}
}
public enum TrafficLamp{ //先定义三个元素,在元素后面填上大括号表示三个元素使用枚举的子类来完成的。
RED(30){
public TrafficLamp nextLamp(){ //子类必须完成父类的抽象方法,注:这里的方法不能再抽象了。将abstract去掉
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();//这个方法的返回值还是TrafficLamp
//灯还需要有时间,所以需要成员变量
private int time;
private TrafficLamp(int time){this.time = time;}
}
}
Open in Explorer是MyEclipse里的一个小功能。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net