黑马程序员——枚举和一些新特性
来源:互联网 发布:flash cs6 mac 汉化包 编辑:程序博客网 时间:2024/06/08 05:50
--------------------- android培训、java培训、期待与您交流! ----------------------
一丶静态导入
//以前的版本导入时是导入的一个类或者是导入某个包中的所有类//比如要用到随机数public static void main(String[] args) { int num = (int) (Math.random()*10+1); System.out.println(num); }//静态导入就是导入一个类的一个静态方法或者是所有的静态方法//比如要用到很多随机数可以这么写public static void main(String[] args) { int num0 = (int) (Math.random()*10+1); int num1 = (int) (Math.random()*10+1); int num2 = (int) (Math.random()*10+1); int num3 = (int) (Math.random()*10+1); System.out.println(num0); System.out.println(num1); System.out.println(num2); System.out.println(num3); }//也可以这么写import static java.lang.Math.*public static void main(String[] args) { int num0 = (int) (random()*10+1); int num1 = (int) (random()*10+1); int num2 = (int) (random()*10+1); int num3 = (int) (random()*10+1); System.out.println(num0); System.out.println(num1); System.out.println(num2); System.out.println(num3); }//再用到Math类下的任何静态方法就不用在写Math .了//注意点:如果是在jdk1.5一下的是不能这样写的
二丶增强for循环
1、语法
for(type 变量名:集合变量名){.....}public static int add(int x,int... args){ int sun = x; for(int arg : args) { sun+=arg; } return sun; }2、注意点:迭代的变量要在for()中定义,集合的变量可以是数组或者是实现了Iterable接口的集合类
三丶基本数据的自动拆箱和装箱
1、在jdk1.5之前这样对8进行装箱操作Integer obj = 8;是不行的
必须这样写Integer obj = new Integer(8);
2、1.5支持Integer obj = 8;和System.out.println(obj+9);的装箱和拆箱的操作
3、享元模式(Flyweight Pattern)
Integer int1 = 100;
Integer int2 = 100;
System.out.println(int1 == int2);会输出true
Integer int3 = 1000;
Integer int4 = 1000;
System.out.println(int3 == int4);会输出false
把基本整形数据装箱成Integer时,如果这个数字在一个字节(-128—127)之内,那么这个数字就会被缓存起来,下次在有数字装箱时就会查找缓存中是否有这个数字,如果有就直接拿来用。这些小的整数因为使用频率比较高,改变的机会也比较小,缓存起来会节省内存空间。这就是享元模式。
比如在word文档不可能为所有的单词的每一个字符创建对象,这事就可以使用享元模式,只要创建26个字母对象就行了,大大减少了重复对象的数量。还比如电脑系统的文件图标,也是用了享元模式。
四丶枚举//普通的枚举public enum Weekday{SUN, MON, TUE, WED, THU, FRI, SAT}// 或public enum Weekday{SUN, MON, TUE, WED, THU, FRI, SAT;}// 在有属性或者是方法时必须要第二种即要在最后一个元素后家分号并且属性和方法也只能在元素的后面。// 枚举可以为它添加静态和非静态的属性或方法,这象在一般的类中做的那样// 枚举还可以添加构造方法,只不过这个构造方法必须是私有的保证构造函数只能在内部使用public enum Weekday{SUN, MON, TUE, WED, THU, FRI, SAT;private WeekDay(){}}// 枚举的每一个元素就是该枚举类的一个对象,如果这个对象有参数就要提供相应的构造方法public enum Weekday{SUN(0), MON, TUE, WED, THU, FRI, SAT;private WeekDay(){}private WeekDay(int num){}}public enum Weekday{SUN(0), MON(1, "星期一"), TUE, WED, THU, FRI, SAT;private WeekDay(){}private WeekDay(int num){}private WeekDay(int num, String name){}}// 如果这时都让构造器打印出一句话public enum Weekday{SUN(0), MON(1, "星期一"), TUE, WED, THU, FRI, SAT;private WeekDay(){System.out.pritnln(“the first”);}private WeekDay(int num){System.out.pritnln(“the second”);}private WeekDay(int num ,String name){System.out.pritln(“the third”);}}// 那么无参元素就会调用无参构造器,拥有相应参数的元素会调用有相应参数的构造器// 然而枚举在实际应用中是集合了有相同属性的元素,所以设置他们的属性一般是相同的// 在获得枚举对象的属性时的方法都在java文档给出,这里不再啰嗦。// 带有抽象方法的枚举public enum Weekday{SUN, MON, TUE, WED, THU, FRI, SAT;public abstract WeekDay nextDay();}// 因为这是一个抽象枚举不能自己创建对象,那么在哪里定义实例的代码呢?元素的后面public enum WeekDay{SUN{public WeekDay nextDay(){return null;}},MON{public WeekDay nextDay(){return null;}},TUE{public WeekDay nextDay(){return null;}},WED{public WeekDay nextDay(){return null;}},THU{public WeekDay nextDay(){return null;}},FRI{public WeekDay nextDay(){return null;}},SAT{public WeekDay nextDay(){return null;}};public abstract WeekDay nextDay();}
--------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
- 黑马程序员——枚举和一些新特性
- 黑马程序员——枚举(JDK5的新特性)
- 黑马程序员—JDK1.5新特性之枚举enum
- 黑马程序员 jdk1.5新特性和枚举。
- 黑马程序员--JDK1.5其他部分新特性和枚举
- 黑马程序员-jdk1.5新特性---枚举
- 黑马程序员_JDK1.5新特性-枚举
- 黑马程序员-高新技术-1.5新特性--枚举
- 黑马程序员基础加强——JDK1.5的新特性: 自动拆箱和机制 枚举
- 黑马程序员——集合:泛型和新特性
- 黑马程序员—javaSE—反射和新特性
- 黑马程序员——高新技术——枚举,JDK1.5部分新特性
- 黑马程序员———Java1.5 新特性之枚举
- 黑马程序员 java基础加强——jdk1.5新特性—枚举
- 黑马程序员——java编程那些事儿____jdk1.5新特性 枚举
- 黑马程序员——高新技术---枚举及部分JDK1.5新特性
- 黑马程序员——高新技术---枚举及部分JDK1.5新特性
- 黑马程序员——高新技术---枚举及部分JDK1.5新特性
- 16周实验指导 任务5
- 在linux平台,使用capistrano, rvm, passenger来部署 rails 项目
- Apache 配置文件管理
- 14. 创业者寻找投资人经验分享
- 17周任务一
- 黑马程序员——枚举和一些新特性
- 15. 生死执行力—电商经营之道
- argc argv
- ***oracle点知识2——数据扩展的分配和回收管理
- 作为Linux小白,一些需要注意的小细节
- 第十七周报告2
- 基于DirectShow的WinCE多媒体编程
- yafeilinux Qt入门教程
- 硬盘分区(转自百度百科)