----------------------ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------
枚举 , 静态导入 ,可变参数
一枚举:
public class TestEnum {
最普通的枚举
public enum ColorSelect {
red, green, yellow, blue;
}
枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静
态的属性或方法,这一切都象你在一般的类中做的那样.
public enum Season {
枚举列表必须写在最前面,否则编译出错
winter, spring, summer, fall;
private final static String location = Phoenix;
public static Season getBest() {
if (location.equals(Phoenix))
return winter;
else
return summer;
}
}
还可以有构造方法
public enum Temp {
通过括号赋值,而且必须有带参构造器和一属性跟方法,否则编译出错
赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值
如果不赋值则不能写构造器,赋值编译也出错
absoluteZero(-459), freezing(32),boiling(212), paperBurns(451);
private final int value;
public int getValue() {
return value;
}
构造器默认也只能是private, 从而保证构造函数只能在内部使用
Temp(int value) {
this.value = value;
}
}
public static void main(String[] args) {
枚举类型是一种类型,用于定义变量,以限制变量的赋值 赋值时通过枚举
名.值来取得相关枚举中的值
ColorSelect m = ColorSelect.blue;
switch (m) {
注意枚举重写了ToString(),说以枚举变量的值是不带前缀的
所以为blue而非ColorSelect.blue
case red
System.out.println(color is red);
break;
case green
System.out.println(color is green);
break;
case yellow
System.out.println(color is yellow);
break;
case blue
System.out.println(color is blue);
break;
}
System.out.println(遍历ColorSelect中的值);
通过values()获得枚举值的数组
for (ColorSelect c ColorSelect.values()) {
System.out.println(c);
}
System.out.println(枚举ColorSelect中的值有:+ColorSelect.values().length+个);
ordinal()返回枚举值在枚举中的索引位置,从0开始
System.out.println(ColorSelect.red.ordinal());0
System.out.println(ColorSelect.green.ordinal());1
System.out.println(ColorSelect.yellow.ordinal());2
System.out.println(ColorSelect.blue.ordinal());3
二:静态导入:
import语句可以导入一个类或某个包中的所有类
import static语句导入一个类中的某个静态成员(方法或属性)或所有静态成员
静态导入的语法是:
import static 包名.类名.静态成员变量;
import static 包名.类名.静态成员函数;
语法举例:
import static java.lang.Math.sin;
import static java.lang.Math.*;
三:可变参数
可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。
注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后
一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参
数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变
参数位于最后一项。
可变参数的特点:
(1)只能出现在参数列表的最后;
(2)...位于变量类型和变量名之间,前后有无空格都可以;
(3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一
数组的形式访问可变参数。
例:
public class Varable {
public static void main(String [] args){
System.out.println(add(2,3));
System.out.println(add(2,3,5));
}
public static int add(int x,int ...args){
int sum=x;
for(int i=0;i<args.length;i++){
sum+=args[i];
}
return sum;
}
}
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------