zoukankan      html  css  js  c++  java
  • JAVA 枚举

    1、枚举:由一组固定的常量组成的类型,是计算机的数据类型。

    2、枚举的定义 public enum Gender{

                                             男,女;//这里的分号可以省略不写

                       //枚举中的值都是静态常量,所以使用的时候,可以用类名.常量值引用 ;不允许手动添加public static final

                       }

     注意:public static final s="男",这是错误的。

     1>枚举不是类,枚举是一种数据类型

     2>枚举中可以有属性和方法,还可以有构造方法,但是构造方法必须是私有的,用private修饰,可以省略这个修饰符,如/*private*/ Gender(){}

       3>枚举中的常量值不能是基本的数据类型,例如public enum Gender{1,2,3,4,5,6;} 这是错误的

    3、将字符串转枚举

        (1)Gender g = Enum.valueOf(Gender.class, str)

                str:String类型的变量         String的值必须是枚举类型的常量值,要不然就报错了IllegalArgumentException(非法的参数)

                Gender.class:反射

                valueOf:将什么类型转成什么什么类型

    4、将枚举转字符串

        (1) g.toString()    g代表的是枚举类型,.toString()转成字符串类型

    //枚举
    
    public enum Gender {//枚举不是类,但是枚举是一种数据类型
        男,女;//这里的分号可以省略不写,枚举中的值都是静态常量!但是不允许手动的添加 public static final
    //    public static final s="男";//这是错的
        
        String name ="张三";//属性
        
        public static void show(){
            System.out.println("枚举中的show方法");
        }
        
        /*private */Gender(){//构造方法可以有,但是必须是私有的,而且可以不写这个修饰!
            
            
        }
        
    }
    //Person类
    public class Person {
        private String name;
        private int age;
        private Gender sex;
        
        public Person() {
            // TODO Auto-generated constructor stub
        }
    
        public Person(String name, int age, Gender sex) {
            super();
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public Gender getSex() {
            return sex;
        }
    
        public void setSex(Gender sex) {
            this.sex = sex;
        }
    
        @Override
        public String toString() {
            return "Person [name=" + name + ", age=" + age + ", sex=" + sex + "]";
        }
        
    }
    /**
     * switch的枚举例子
     * 在jdk1.5把这个switch语句中的表达式加入了枚举类型[int  char]
     * 
     * 
     */
    public class TestGender {
        public static void main(String[] args) {
            Gender g =Gender.男;
    //        g.show();
            switch(g){
            case 女:
                System.out.println("女的");
                break;
            case 男:
                System.out.println("男的");
                 break;
            }
        }
    }
    //类型转换,例如:字符串转枚举;枚举转字符串
    
    public class TestPerson {
        public static void main(String[] args) {
            //枚举中的值都是静态的常量,所以使用的时候: 类型名.常量值
            Person p =new Person("金星",45,Gender.女);//枚举的使用
            System.out.println(p);
            //将字符串转枚举,String的值必须是枚举类型的常量值,要不然就报错了IllegalArgumentException(非法的参数)
            String str ="男";
            Gender g = Enum.valueOf(Gender.class, str);//Gender.class反射 
            System.out.println(g);
            
            String str2="123";
            int in = Integer.valueOf(str2);
            System.out.println(in);
            
            String str3="3.14";
            double d = Double.valueOf(str3);
            System.out.println(d);
            //小结:将String 转各种数据类型使用统一的valueOf(String s)方法
            
            //把枚举转成字符串
            System.out.println(g.toString());
            
            
            Gender.show();
    //        Gender.name;  //属性点不出来,需要反射
            
        }
    
    }
  • 相关阅读:
    JDBC操作数据库的步骤 ?
    switch 是否能作用在 byte 上,是否能作用在 long 上, 是否能作用在 String 上?
    有哪些不同类型的IOC(依赖注入)方式?
    ApplicationContext通常的实现是什么?
    如何给Spring 容器提供配置元数据?
    一个”.java”源文件中是否可以包含多个类(不是内部类)? 有什么限制?
    数据库连接(Database link)?
    你怎样定义类的作用域?
    JSP的常用指令有哪些?
    Mapper 编写有哪几种方式?
  • 原文地址:https://www.cnblogs.com/lingtiaoti/p/6224201.html
Copyright © 2011-2022 走看看