枚举类型 和 可变参数

定义可变参数:
一定要放在所有参数的最后面, 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对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值