foreach使用方法 和 枚举使用方法

                                                             foreach使用方法  和   枚举使用方法

foreach:

这种循环方法的基本语法如下:

for(type variable : 数组或者集合){
   .....
     ........

}


为了更方便理解,写一段代码:

List<String> names=new ArrayList<String>();
names.add("josn");
names.add("tom");
names.add("jerry");

for(String name : names)
System.out.println(name);

枚举:

我们经常会碰到这样一种情景:某些数据必须是一些特定的值,例如:性别只能是“男”或者是“女”;或者参加宴会的只能是“Lucy”或者“Lily”。这个时候,我们就会想到“枚举”。在我们使用类或者接口来实现上面的功能,会比较麻烦。例如:

public class Gender{

public static final String MALE=1;
public static final String FEMALE=2;

}


然后,在需要用到性别的时候使用这个类中的性别来表示。比如:我有个方法,

method(ing sex);

要向里边放入性别男------------>method(Gender.MALE);
但是请注意,方法中的参数是一个int类型的值。那么这样我们可以完全使用这种方法 method(1)来表示。


虽然这个例子在语法上是成立的,但是在逻辑上是不成立的;因为“1”既不表示男性,也不表示“女性”;为了避免这种麻烦,我们只能在method();方法中进行检查,看看接收的参数是否为1或2;显然这种方法虽然可行,但是真的很麻烦。

那么,为了解决这种麻烦在JDK5.0中,引入了一种新的类型:“枚举”即"Enum",可以很好地解决这个问题。

现在就用枚举来定义上面的性别:

public Enum Gemder{
    MALE;
    FEMALE;
}
然后,定义下面的程序代码来理解一下:
public class TextEnum{
  public vjoid method(Gender sex){
     switch(sex){
       case MALE:
         System.out.println("男");
         break;
       case FEMALE:
         System.out.println("女");
         break;
    }
}

  public static void main(String[] arg0){
     new TextEnum().method(Gander.FEMALE);
  }
}

这个时候,我们就没有办法使用method(1);的方法去调用了。但是,我们可以吧枚举类型的每一个值都映射到protected Enum(String name,int ordinal);枚举类的构造方法中。即

new Enum<Gender>("MALE",1);
new Enum<Gender>("FEMALE",2);
这样就OK了;


当然,更重要的 是:我们也可以自己定制构造方法,而不是使用默认的构造方法;例如:

public enum Gender{
  MALE ("男");
  FEMALE("女");
  String sex;

 Gender(String s){
   sex=s;
 }
}

在自定义枚举类型的构造方法时,注意不能定义public的构造器,这点在进行自定义构造器时候一定要注意!










你可能感兴趣的:(java,android,foreach循环,Enum枚举)