Java培训笔记十四

8月11日枚举

 

枚举类型(JDK5 5.0):

<1>Enum关键字,一种特殊的数据类型

<2>和类差不多:包含有变量和方法,可以实现接口

<3>特征:
   (1)不能包含public修饰的构造函数
   (2)枚举不能被实例化
   (3)枚举项需放在最顶端,枚举项的值默认被public static final修饰
   (4)enum默认实现了Java.lang.comparable接口
   (5)enum可对进行toString()重写
   (6)每个自定义枚举类型都提供了valueOf(String argName)方法,与toString()相关
   (7)enum提供了values()方法
   (8)enum的枚举项提供了 oridinal()方法查找枚举项的下标位置
   (9)如果枚举项未显示提供toString()方法,则在枚举中找toString()方法
   (10)枚举项的方法和变量不能用static修饰,且不能被枚举项外围访问到
   (11)枚举中的方法若要被外围访问,则需要static有修饰
   (12)可以定义在类内部,或单独形成一个枚举类型

--->什么情况下使用枚举,使用枚举的意义
作业:选则颜色,
    用户输入数字(>10),或者输入任意字符(即产生随机数)
   由枚举类中的getColor()和getColor(int i)方法产生对应的枚举项

 

 

 

package cn.com.test;

import java.util.Scanner;

public class EnumColor {

 enum Colors{
  红,橙,黄,绿,青,蓝{
   private String name;
   public String toString(){
    return "blue";
   }
  },紫{
   public String toString(){
    return "pink";
   }
  };
  
  String
  
  Colors(){
   System.out.println("枚举的无参构造函数");
  }
  Colors(){
   
  }
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner input = new Scanner(System.in);
 }

}

 

 

 

package cn.com.test;

import java.util.Scanner;

 

public class Example{
 /*
  * 定义
  */
 enum Sex {
  mail("I am a man"){
   private String name;
   public String getName(){
    return"";
   }
   public String toString(){
    return "man";
    
   }
  },femail; //不要引号,枚举项必须在顶端
  public static String value;
  
  public static void getValue(){
   System.out.println(value);
  }
  Sex(){     //枚举的构造函数不能用public修饰
//   mail = femail;      //枚举项的值默认被public static final修饰
   System.out.println("枚举Sex的无参构造函数");
  }
  Sex(String argValue){
   Sex.value = argValue;
   System.out.println("枚举Sex的有参构造函数");
  }
  
  public String toString(){
   return "枚举中的toString()方法";
  }
 }
   public static void main(String[] args){
   
//    Scanner input = new Scanner(System.in);
    System.out.println(Sex.mail.toString());//是有枚举项继承Object的,而不是有枚举本身继承的
    System.out.println(Sex.valueOf("mail"));//借助字面值搜索枚举项
    System.out.println(Sex.valueOf("femail"));
//    System.out.println(Sex.valueOf("jgd"));
//    System.out.println(Sex.values());
    //values()方法,用于遍历枚举项的
//    Sex[] sexes = Sex.values();
    //ordinal()方法,用于打印下标值
//    for(Sex s:sexes){
//     System.out.println(s + " " + s.ordinal());
//    }
//    System.out.println("请输入性别");
//    String sex = input.next();
//    String sexValue = null;
//    if(sex.equals("mail")){
//     sexValue = Sex.mail;
//    }
    //每调用一次,都会调用一次构造函数
//    if(Sex.mail.compareTo(Sex.femail) == 0){
//     System.out.println("true");
//    }else{
//     System.out.println("false");
//    }
//    System.out.println(sex);
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值