定义可变参数:
一定要放在所有参数的最后面, sum(不可变类型,可变类型int… nums),同时可变参数最多只能有一个
可以一个个参数传进去,也可以以数组的方式传进去。
格式 type … name
// 这样定义意思是sum可以接收多个整型的的变量
public static int sum(int... nums){
int summ = 0;
// 这样来使用
for(int s:nums){
summ += s;
}
}
sum(1,2,3); // 这样使用是可以的
sum(new int[]{1,2,3}) // 传数组的方式也是可以的,因为 int... nums 里中nums就是放在数组中的
枚举类型:
跟类很相似,但是也有一些不同 关键字 enum
枚举类型和类不同的是,枚举类型在编译的时候,已经实例化完它所有的对象,无法再生成新的实例了,而类可以new几次生成几个对象。
public enum Color{
Red,
White,
Blue,
}
使用 Color.Red调用,还有其他的方法values(),valueOf()
// 还提供了一些方法,values()方法,返回所有的枚举值,以数组方式
Color[] col=Color.values();
// 将一个字符串转换为枚举类型
System.out.println(Color.valueOf("Red"));
// 一般比较常与switch语句搭配使用, switch能使用的类型,char,byte,int,short ,不能跟long
// 现在最新的可以跟Enum 和string 搭配使用
switch(color){
case Red:
System.out.println("Red");
break;
case Blue:
System.out.println("Blue");
break;
}
枚举类型还可以这样调用,它可以在内部添加自己的成员变量和方法,
每一个枚举的成员实质上就是您定义的枚举类型的一个实例
枚举和 class 和interface是同一级别的, 是继承自java.lang.Enum 类
的,对于所定义的每一个枚举类型,默认都是public static final的,所以可以直接通过枚举名调用,并且不可以再为枚举类型添加新的对象了,在编译的时候就已经确定所有的实例了
public enum Color2 {
// 这样定义也是可以的,可以在枚举类型内部定义成员变量和方法,
// 枚举和 class 和interface是同一级别的, 是继承自java.lang.Enum<E> 类
// Class Enum<E extends Enum<E>>
// java.lang.Object
// java.lang.Enum<E>
// 对于所定义的每一个枚举类型,默认都是public static final的,
// 每一个枚举的成员实质上就是您定义的枚举类型的一个实例
// Red,
// White,
// Black,
// Blue;
R("Red"), // Red, 直接这样写是错误的,原因就是上面的一句话,
// 我们在这个enum里面没有提供不带参数的构造方法, 所以在enum被加载的时候就没办法实例化一个枚举对象
W("White"), //White,
BL("Black"), //Black,
B("Blue"); //Blue ;
private String value;
Color2(String value){
this.value=value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
对于Color2的使用:
Color2 co2 = Color2.R; // 可以看到是调用的R 而不是实际的Red说明R才是是实例化的对象
co2.ordinal(); // 比较少用到,返回枚举类型在声明中的下标,从0开始
枚举类型的应用场合:
检查权限的时候比较常用到
而每个枚举的成员其实就是您定义的枚举类型的一個实例(Instance) 。换句话说,当定义了一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什么。在运行期间我们无法再使用该枚举类型创建新的实例了,这些实例在编译期间就已经完全确定下来了。
静态导入:
import static com.shengsiyuan.common.Common.Age;
import static com.shengsiyuan.common.Common.output;
表示导入Common类中的静态成员变量AGE以及静态方法output。 注意:使用import static 时,要一直导入到类中的静态成员变量或静态方法。
Java中,无论生成某个类的多少个对象,这些对象都会对应于同一个 Class对象。