java枚举

//枚举:指定是一个类中,存在几个固定的该类对象,用来描述几个固定值
//比如方向:前后左右。
//JDK1.5 之前需要自己定义

 Direction front = Direction.front;
    Direction behind = Direction.behind;
    Direction left = Direction.left;
    Direction right = Direction.right;
    System.out.println(front.name);
    System.out.println(behind.name);
    System.out.println(left.name);
    System.out.println(right.name);
      front.show("前");
        behind.show("后");
        left.show("左");
        right.show("右");
//

public class Direction { //自定义枚举类
    //定义4个该类的对象
    public static final Direction front=new Direction("前"); {
        @Override
        public void show(String name) {
            System.out.println(name);
        }
    };
    public static final Direction behind = new Direction("后"); {
        @Override
        public void show(String name) {
            System.out.println(name);
        }
    };
    public static final Direction left = new Direction("左"); {
        @Override
        public void show(String name) {
            System.out.println(name);
        }
    };
    public static final Direction right = new Direction("右"); {
        @Override
        public void show(String name) {
            System.out.println(name);
        }
    };
    String name;
    private Direction(String name) {
        this.name = name;
    }
     //提供抽象方法
    public abstract void show(String name);
}


//JDK1.5之后,要定义一个枚举类,更加简洁了。Java提供了一个关键字 enum

   Direction front = Direction.FRONT;
        Direction behind = Direction.BEHIND;
        Direction left = Direction.LEFT;
        Direction right = Direction.RIGHT;
        System.out.println(front.toString());
        System.out.println(behind);
        System.out.println(left);
        System.out.println(right);
        //


public enum  Direction {
    //枚举项
 FRONT,BEHIND,LEFT,RIGHT;
}

加名字

      Direction front = Direction.FRONT;
        String name = front.name;
        System.out.println(name);
//


public enum Direction {
    //枚举项
    FRONT("前"), BEHIND("后"), LEFT("左"), RIGHT("右"),
    ;
    String name;
    private Direction(String name) { //枚举中的构造方法是私有修饰的
        this.name = name;
    }
}

加方法

   Direction left = Direction.LEFT;
        left.show("左");
    }
    //

public enum Direction { //枚举默认就是抽象的
    //枚举项
    FRONT("前"){
        @Override
        public void show(String name) {
            System.out.println(name);
        }
    }, BEHIND("后") {
        @Override
        public void show(String name) {
            System.out.println(name);
        }
    }, LEFT("左") {
        @Override
        public void show(String name) {
            System.out.println(name);
        }
    }, RIGHT("右") {
        @Override
        public void show(String name) {
            System.out.println(name);
        }
    },
    ;
    String name;
    private Direction(String name) { //枚举中的构造方法是私有修饰的
        this.name = name;
    }
    //提供抽象方法
    public abstract void show(String name);
}

每个枚举项,都编有编号,你可以通过ordinal()获取枚举项的编号,编号从0开始

  System.out.println(Direction.FRONT.ordinal());
  Direction left=Direction.LEFT;
  int index=left.ordinal;
    System.out.println(index);
     String s = left.toString();
      String name = left.name();
        System.out.println(s);
        System.out.println(name);
               //静态方法 values()获取所有的枚举项
                Direction[] values= Direction.values();
                  for (Direction value : values) {
            System.out.println(value.name());
        }


//

public enum Direction{
    //枚举项必须位于第一行,每个枚举项右逗号隔开,最后一个枚举项用分号结尾
    FRONT, BEHIND, LEFT, RIGHT;
}


//
 //byte short int char JDK1.7 String JDK1.5 支持枚举
        //swithch 语句支持枚举类型
        Direction front = Direction.FRONT;
        switch (front){
            case FRONT:
                System.out.println("执行 前 这段代码");
                break;
            case BEHIND:
                System.out.println("后");
                break;
            case LEFT:
                System.out.println("左");
                break;
            case RIGHT:
                System.out.println("右");
                break;
  //单例模式:允许内存中只能存在该类的一个对象
   Student student = Student.getStudent();
   //

public class Student {
    private static final Student student = new Student();
    private Student() {
    }
    public static Student getStudent() {
        return student;
    }
}


//

 Teacher teacher = Teacher.TEACHER;
 //

//如果我们这个枚举类,只有一个枚举项,那他也是一个单例模式
public enum  Teacher {
    TEACHER;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值