Java编程思想第四版——第十七天
- 博客分类:
- Java
2012-04-25
138-142/913
Java编程思想第四版——第十七天
5.9 枚举类型
Java SE5添加了一个小特性,enum关键字,它使得在需要群组并使用枚举类型集时,可以很方便的处理。
例子, 一个Spiciness的枚举类型:
public enum Spiciness{
NOT, MILD, MEDIUM, HOT, FLAMING
}
枚举的实例是常量,都用大写字母表示。(多个单词,用下划线隔开)
使用enum,需要创建一个该类型的引用,并将其赋值给某个实例:
public class SimpleEnumUse{
public static void main(String[] args){
Spiciness howHot = Spiciness.MEDIUM;
System.out.println(howHot);
}
}
创建enum时,编译器会自动添加一些有用的特性。如,创建toString()方法,以便可以很方便的显示某个enum实例的名字。上面的打印语句可以说明这点。编译器海辉创建ordinal()方法,用来表示某个特定enum常量的声明顺序,以及static values()方法,用来按照enum常量的声明顺序,产生由这些常量值构成的数组。
尽管enum看起来像是一种新的数据类型,但是这个关键字只是为enum生成对应的类时,产生了某些编译器行为,因此在很大程度上,可以将enum当作其他任何类来处理。事实上,enum确实是类,并且具有自己的方法。
Enum有一个特别实用的特性,可用在switch语句内使用。由于switch是要在有限的可能值集合中进行选择,因此它与enum正是绝佳的组合。Enum的名字能够清楚表明程序意欲何为。
5.10 总结
构造器,这种精巧的初始化机制,暗示了初始化在java中占有至关重要的地位。
C++发明人Bjame Stroustrup在设计C++期间,针对C的生产效率所进行的最初调查发现,大量编程错误都源于不正确的初始化。这种错误很难发现,不恰当的清理也会导致类似问题。构造器能保证正确的初始化和清理(没有正确的构造器调用,编译器就不允许创建对象),有了完全的控制,安全。
C++中,“析构”相当重要,因为用new创建的对象必须明确被销毁。Java中,垃圾回收器会自动为对象释放内存,很多场合,类似的清理方法在java中不太需要。(不过当要用到的时候,只能自己动手)
不需要类似析构函数的行为的时候,java的垃圾回收器可以极大的简化编程工作,而且在处理内存的时候也更安全。有些垃圾回收器能清理其他资源:如图形和文件句柄。然而,垃圾回收器也增加了运行时的开销。Java解释器也比较慢,速度问题是它涉足某些特定编程领域的障碍。
由于要保证所有对象都被创建,构造器实际上要比此处讨论的更复杂。特别当通过组合或继承生成新类的时候,这种保证仍然成立,并且需要一些附加的语法来提供支持。
138-142/913
Java编程思想第四版——第十七天
5.9 枚举类型
Java SE5添加了一个小特性,enum关键字,它使得在需要群组并使用枚举类型集时,可以很方便的处理。
例子, 一个Spiciness的枚举类型:
public enum Spiciness{
NOT, MILD, MEDIUM, HOT, FLAMING
}
枚举的实例是常量,都用大写字母表示。(多个单词,用下划线隔开)
使用enum,需要创建一个该类型的引用,并将其赋值给某个实例:
public class SimpleEnumUse{
public static void main(String[] args){
Spiciness howHot = Spiciness.MEDIUM;
System.out.println(howHot);
}
}
创建enum时,编译器会自动添加一些有用的特性。如,创建toString()方法,以便可以很方便的显示某个enum实例的名字。上面的打印语句可以说明这点。编译器海辉创建ordinal()方法,用来表示某个特定enum常量的声明顺序,以及static values()方法,用来按照enum常量的声明顺序,产生由这些常量值构成的数组。
尽管enum看起来像是一种新的数据类型,但是这个关键字只是为enum生成对应的类时,产生了某些编译器行为,因此在很大程度上,可以将enum当作其他任何类来处理。事实上,enum确实是类,并且具有自己的方法。
Enum有一个特别实用的特性,可用在switch语句内使用。由于switch是要在有限的可能值集合中进行选择,因此它与enum正是绝佳的组合。Enum的名字能够清楚表明程序意欲何为。
5.10 总结
构造器,这种精巧的初始化机制,暗示了初始化在java中占有至关重要的地位。
C++发明人Bjame Stroustrup在设计C++期间,针对C的生产效率所进行的最初调查发现,大量编程错误都源于不正确的初始化。这种错误很难发现,不恰当的清理也会导致类似问题。构造器能保证正确的初始化和清理(没有正确的构造器调用,编译器就不允许创建对象),有了完全的控制,安全。
C++中,“析构”相当重要,因为用new创建的对象必须明确被销毁。Java中,垃圾回收器会自动为对象释放内存,很多场合,类似的清理方法在java中不太需要。(不过当要用到的时候,只能自己动手)
不需要类似析构函数的行为的时候,java的垃圾回收器可以极大的简化编程工作,而且在处理内存的时候也更安全。有些垃圾回收器能清理其他资源:如图形和文件句柄。然而,垃圾回收器也增加了运行时的开销。Java解释器也比较慢,速度问题是它涉足某些特定编程领域的障碍。
由于要保证所有对象都被创建,构造器实际上要比此处讨论的更复杂。特别当通过组合或继承生成新类的时候,这种保证仍然成立,并且需要一些附加的语法来提供支持。
发表评论
-
Java编程思想第四版——第二十一天
2012-05-04 12:56 5452012-05-04 163-170/913 Java编 ... -
Java编程思想第四版——第二十天
2012-05-03 13:45 6542012-05-03 158-163/913 Java编程思 ... -
Java编程思想第四版——第十九天
2012-05-02 11:08 7782012-05-02 149-158/913 Java编程思 ... -
Java编程思想第四版——第十八天
2012-04-27 13:12 9662012-04-27 142-149/913 Java编 ... -
Java编程思想第四版——第十六天
2012-04-24 13:50 7142012-04-24 131-138/913 Java编 ... -
Java编程思想第四版——第十五天
2012-04-23 17:14 7212012-04-23 121-131/913 Java编程思 ... -
Java编程思想第四版——第十四天
2012-04-19 11:28 5942012-04-19 118-121/913 Java编程思 ... -
Java编程思想第四版——第十三天
2012-04-18 12:08 6402012-04-18 108-118/913 Java编 ... -
Java编程思想第四版——第十二天
2012-04-09 10:58 6952012-04-09 102-108/913 Java编 ... -
Java编程思想第四版——第十一天
2012-04-05 12:21 7832012-04-05 Java编程思想第四版——第十一天 ... -
Java编程思想第四版——第十天
2012-03-31 12:03 5302012-03-31 97-102/913 Java编程思想 ... -
Java编程思想第四版——第九天
2012-03-30 14:59 5992012-03-30 80-97/913 Java编程思想第 ... -
Java编程思想第四版——第八天
2012-03-29 12:09 4552012-03-29 76-80/913 3.6 自动递增和 ... -
Java编程思想第四版——第七天
2012-03-28 12:24 6312012-03-28 70-76/913 昨天找 ... -
Java编程思想第四版——第六天
2012-03-27 13:02 5002012-03-27 66-70/913 最近两 ... -
Java编程思想第四版——第五天
2012-03-23 15:09 9182012-03-23 60-66/913 2.5 方法、参数 ... -
Java编程思想第四版——第四天
2012-03-22 12:41 5582012-03-22 54-60/913 第二章 ... -
Java编程思想第四版——第三天
2012-03-21 12:40 5402012-03-21 47-54/913 1.12 并 ... -
Java编程思想第四版——第二天
2012-03-20 13:54 711今天本来以为进度可以 ... -
Java编程思想第四版——第一天
2012-03-19 15:57 752Java已经丢手一年了 ...
相关推荐
Java编程思想(第4版)读书笔记by CZFJava编程思想(第4版)读书笔记by CZFJava编程思想(第4版)读书笔记by CZF
基于java编程思想(Thinking in java, TIJ)的教学课件,教学设计请见http://blog.csdn.net/Florianjin
我制作的java编程思想的教学课件,紧跟着“java编程思想教学材料——开端”
很有名的一本书—————Java编程思想【第4版】习题答案
实训项目八:JAVA网络编程(csdn)————程序
基于java编程思想(Thinking in java, TIJ)的教学PPT,教学设计请见http://blog.csdn.net/Florianjin
Java之SSH深入浅出——精简剖析
java8函数式编程(csdn)————程序
Java 基本语法(四)——字串和数组 Java 基本语法(四)——字串和数组
java 面向对象编程(csdn)————程序
非常全面的java教程,包含了java的基础技术,还有数据库,网络,GUI方面的知识,非常好的一个教程
计算机软件开发的Java编程语言及应用——评《Java编程方法论》.pdf
做坦克游戏,学Java编程(四)——添加炮弹类.pdf
——————————————————————————————————————————————
《Java 工程师的编程逻辑》——用 java 看计算机世界。
利用Java进行疫情大数据分析——“Java面向对象程序设计”课程实践教学设计研究.pdf
java网络编程——网络版题库程序(主要技术java+socket+多线程+mysql),程序是C/S 版本的,由于服务器端是java写的,所有客户端使用android也是很容易与服务器对接的