枚举

来源:互联网 发布:linux如何解压war包 编辑:程序博客网 时间:2024/05/22 11:44

1.可变参数:一个方法中接受的参数个数不固定,如:

package com.TextFile;

 

import java.util.Scanner;

 

public class Mytext {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       System.out.println(add(2, 3));

       System.out.println(add(2, 3, 4));

 

    }

    public static int add(int x, int... args) {

       int sum = x;

       for (int i = 0; i < args.length; i++) {

           sum += args[i];

       }

       return sum;

    }

2.增强for()循环 语法:for(type 变量名:集合变量名){…},其中迭代变量必须在()中定义, 举例:

public static int add(int x int…args){

int sum=x;

for(int arg:args){

sum+=arg;

}

return sum;

}

3.装箱:自动把一个基本数据类型装成一个与其相对应的封装类,在赋给一个普通变量,如:Integer iobj=3;

  拆箱:将一个封装类转换成基本数据类型再进行运算,如:Integer iobj=3; System.out.println(iobj+12);(iobj先转换成整型再进行加法,其数据范围为 -128127)

有一种方法是讲基本数据类型转换成封装类:如:Integer i1=Integer.valueof(3);

4. 枚举:枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则编译器就会报错,枚举可以让编译器在编译时就可以控制源程序中填写的非法值。枚举用于以下情况:(1)用一个名为elements()的方法要求集合为我们提供一个Enumeration,我们首次调用它的nextElement()时,这个Enumeration会返回序列中的第一个元素。(2)用nextElement()获得下一个对象。(3)用hasMoreElements()检查序列中是否还有更多的对象。先以视频中的WeekDay为例:package com.TextFile;

public class WeekDay1 {

    public static void main(String [] args){

       WeekDay weekday=WeekDay.MON;

       System.out.println(weekday);

    }

    public WeekDay{

SUN,MON,TUE,WEN,THI,FRI,SAT;

};

带有抽象方法的枚举:

package com.TextFile;

 

import java.util.Date;

 

public abstract class TextEnum {

 

    public static void main(String[] args) {

       // TODO Auto-generated method stub

          new Date(10){};

        }

        public enum TrafficLamp{

       RED(10){

           public TrafficLamp NextLamp(){

              return GREEN;

           };

                  },

       GREEN(5){

           public TrafficLamp NextLamp(){

              return YELLOW;

           };

       },

       YELLOW(3){

           public TrafficLamp NextLamp(){

              return RED;

           };

       };

       public abstract TrafficLamp NextLamp();

       private int time;

       private TrafficLamp(int time){this.time=time;}

    }

    }

 

原创粉丝点击