一、枚举
问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法阻止意外。 ok,Java很会为大家考虑问题,于是就有了枚举;此枚举,非彼枚举。 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。 示例:/** 用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能。
1、私有的构造方法
2、每个元素分别用一个公有的静态成员变量表示
3、可以有若干公有方法或抽象方法。采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。
*/
package cn.itheima;
public abstract class WeekDay {
private WeekDay(){}
public final static WeekDay SUN=new WeekDay(){
public WeekDay nextDay(){
return MON;
}
};
public final static WeekDay MON=new WeekDay(){
public WeekDay nextDay(){
return SUN;
}
};
public abstract WeekDay nextDay();
public String toString(){
return this==SUN?"SUM":"MON";
}
}
1、构造器
/**
(1)构造器只是在构造枚举值的时候被调用。
(2)构造器只有私有private,绝不允许有public构造器。这样可以保证外部代码无法重新构造枚举类的实例,这样是合情合理的,因为枚举值是public static final的常量,但是枚举类的方法和数据域是可以被外部访问的。
(3)构造器可以有多个,调用哪个即初始化相应的值。
*/
2、枚举方法
/**
非静态方法:<pre name="code" class="java">(1)toString() ---> 返回枚举量的名称
(2)ordina() ---> 返回枚举值在枚举类中的顺序,按定义的顺序排
(3)getClass() ---> 获取对应的类名
静态方法:
(1)valueOf(String e) ---> 转为类中对应的对象,即将字符串转为对象
(2)values() ---> 获取数组,将元素放入一个数组中。<pre name="code" class="java">*/
3、注意事项
/**
(1)元素列表即所有的元素项目,必须放在整个类的最前面。
(2)元素列表后要有分号
(3)枚举类中的方法为private
(4)在元素后跟上(),就可指定要使用的构造方法,含参数。
(5)枚举类中的每个元素都是它的一个子类对象,当枚举类中存在abstract方法,须在子类后加{},并在其中实现此方法。
*/
4、小结
/**
(1)匿名内部类比较常用
(2)类的方法返回的类型可以是类的类型
(3)类中可定义静态常量,常量的结果就是自己这个类型的实例对象
(4)如果枚举只有一个成员,就可以作为一种单利的实现方式,对象只有一个。
*/
二、eclipse开发工具
1、概述
/**
1、project(工程)
(1)一个工程包含有:包,jar包,资源文件,java源文件等内容。
(2)将一个工程的所有源文件用一个工程来组织,开发工具能对所有源文件集中管理,记住每个源文件的位置和相互关系,配置信息等都在工程中有记录。
2、preferences(首选项)
在workspace(工作间)中配置,将会影响到它下面所有的工程,一个工作间包含多个工程,不同透视图就是几个小窗口的集合。
(3)在eclipse下如何查看变量值
在变量处打个断点--->Debug透视图,调试运行--->选中变量,右键选watch(观察),就可以看到了。
(4)perspective(透视图)和view(视图)的关系
view:每一个小窗口就是一个视图。可通过window下的show view调出相应的视图。
perspective:透视图就是若干个小窗口的集合。
(5)导入已有工程
a、将其他工作间中的工程拷贝到当前工作间所在的文件夹下。
b、在eclipse中右击工程--->导入--->浏览选择当前工作间目录下拷贝过来的工程。
(6)配置JDK环境
右击工程--->BuildPath --->Libraries(库)--->移除导入的工程的JDK库,增加自己的库。
注:
Add JARs是增加打个Jar包,如果Jar包不在当前工程文件夹中,用Add Exernd JARs。
如果Jar包在当前工程文件夹中,用Add JARs,增加一个库相当于增加很多Jar,这是一个打包的过程。
*/
2、eclipse和Myeclipse区别
/**
(1)Myeclipse:是elipse的插件,用于开发javaEE的平台,为其打补丁,扩展其功能,可以开发JavaEE程序即web项目,但是现在Myeclipse也集成了eclipse的功能,可直接使用Myeclipse。
(2)eclipse:是开发java的一款专业的IDE(集成开发环境),以前需要Myeclipse才能开发JavaEE程序,现在的eclipse的版本也可以不用再安装Myeclipse插件,直接可以开发JavaEE项目。
*/
三、JDK1.5新特性
这部分,JDK1.5新特性主要包括:静态导入、增强for循环、可变参数:(方法的重载)VariableParameter基本数据类型的自动拆箱与装箱这四个主要新特性。由于前面有篇幅做过详细介绍,在这里就不在重复介绍。
大神们,这篇我们就到这里了,下篇我们再见。
------- android培训、java培训、期待与您交流! ---------