枚举

    技术2022-05-18  15

    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;}

        }

        }

     


    最新回复(0)