`
凌紫冥
  • 浏览: 26237 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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解释器也比较慢,速度问题是它涉足某些特定编程领域的障碍。
由于要保证所有对象都被创建,构造器实际上要比此处讨论的更复杂。特别当通过组合或继承生成新类的时候,这种保证仍然成立,并且需要一些附加的语法来提供支持。
分享到:
评论

相关推荐

    计算机科学与技术学院毕业设计(论文)开题报告

    Java 编程思想. 2005 年 3 月第 1 版. 机械工业出版社. [3] James Keogh 著.潘颖 王磊译.J2ME 开发大全. 2004 年 2 月第 1 版. 清华大学出版社. [4] Ian Sommerville 著. 程成等译. 软件工程. 2003 年 1 月第 1 ...

    Android程序设计基础

     阅读本书唯一的前提条件,是具备对Java编程或类似面向对象语言(比如说C#)的基本理解,不需要拥有为移动设备开发软件的经验。实际上,如果你确实有这方面的经验,反倒应该忘记它们。Android是如此与众不同,因此...

    代码之美(中文完整版).pdf

    5.8 版本 6:第四次优化:缓存(Caching) 5.9 从故事中学到的 第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. ...

    C#微软培训资料

    第十七章 文 件 操 作 .215 17.1 .Net 框架结构提供的 I/O 方式 .215 17.2 文件存储管理 .217 17.3 读 写 文 件 .222 17.4 异步文件操作 .227 17.5 小 结 .234 第十八章 高 级 话 题 .235 18.1 注册表...

    SQL21日自学通(V1.0)

    **第十天:创建视图和索引** - **使用视图**:介绍了视图的概念及其用途。 - **列的重命名**:教授了如何更改视图中列的名称。 - **SQL对视图的处理过程**:解释了SQL引擎如何处理包含视图的查询请求。 以上内容...

    经典的C# 教程经典的C# 教程

    ##### 第十七章 文件操作 - **.Net框架结构提供的I/O方式**:包括文件流、缓冲区等。 - **文件存储管理**:文件的打开、关闭、读写等操作。 - **读写文件**:通过FileStream、StreamReader/StreamWriter等类实现。 ...

    C#入门教程

    #### 第十七章:文件操作 - **17.1 .Net框架结构提供的I/O方式** - 文件流、缓冲流等。 - **17.2 文件存储管理** - 如何创建、打开和关闭文件。 - **17.3 读写文件** - 使用`FileStream`、`StreamReader`、`...

    C#系列教程

    ##### 第十七章:文件操作 - **17.1 .Net框架结构提供的I/O方式** - 包括文件流、缓冲流等。 - **17.2 文件存储管理** - 文件系统的概念和管理方法。 - **17.3 读写文件** - 使用C#中的类库读取和写入文件。 - *...

    C语言系统化开发基础精讲

    #### 二十七、数组基础【C语言设计哲 - **数组定义**:讲解数组的基本概念及其在C语言中的定义方式。 - **数组操作**:探讨如何有效地操作数组元素,包括初始化、访问、遍历等操作。 - **设计哲学**:从C语言的设计...

    c#完全手册

    ##### 第十七章:文件操作 - **17.1 .Net框架结构提供的I/O方式** - .NET框架提供了多种输入输出(I/O)机制。 - 包括文件系统、流、文件对话框等。 - **17.2 文件存储管理** - 文件的创建、打开、关闭等操作。 ...

    C#完全中文手册

    ##### 第十七章:文件操作 - **17.1 .Net框架结构提供的I/O方式** - 文件流、缓冲区等I/O技术。 - **17.2 文件存储管理** - 文件系统的组织方式。 - **17.3 读写文件** - 使用FileStream、StreamReader、...

    C Sharp完全手册.pdf

    ##### 第十七章:文件操作 - **17.1 .Net框架结构提供的I/O方式** - **文件流**:介绍File类和Stream类等用于文件操作的类。 - **17.2 文件存储管理** - **文件路径**:如何获取和设置文件路径。 - **文件属性**...

    c# 教程(清华版)

    **第四章:数据类型** - **4.1 值类型** - 包括整型(如`int`、`long`)、浮点型(如`float`、`double`)和其他类型(如`char`、`bool`等)。 - 值类型的变量直接存储数据的值。 - **4.2 引用类型** - 包括类、...

    c# 基础学习系列教程

    **第四章 数据类型** - **4.1 值类型** - **整型** - **浮点型** - **布尔型** - **字符型** - **4.2 引用类型** - **类** - **数组** - **接口** - **4.3 装箱和拆箱** - **装箱**:将值类型转换为...

Global site tag (gtag.js) - Google Analytics